• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Tabblad verzenden met sendmail

  • Onderwerp starter Onderwerp starter Haije
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Haije

Terugkerende gebruiker
Lid geworden
24 mrt 2009
Berichten
4.421
Besturingssysteem
Windows 11
Office versie
Office 2016 Professional Plus en Office 2010 Home & Student
Goedenavond,

Als bijlage hierbij een simpel rooster dat ik m.b.v. sendmail wil verzenden.

Als ik de help van Excel 2010 goed begrijp, zou dat moeten kunnen m.b.v.
Code:
Sub zend()
    ActiveWorkbook.SendMail Recipients:="krobbe@live.nl"
End Sub

Als ik dat probeer, dan krijg ik melding Fout 1004;

Fout 1004.png

Standaard staat de Mail-app ingesteld als standaard voor het verzenden van mail.

Wie helpt me uit de brand?
 

Bijlagen

Staat "Verzenden naar e-mailadres" in je Werkbalk voor snelle toegang?
 
Ja, dat staat in de werkbalk snelle toegang, maar is niet actief. Ook E-mail staat in snelle toegang
 
Probeer dit eens :

Code:
Sub Mail_workbook_1()
    Dim wb As Workbook
    Dim I As Long
    Set wb = ActiveWorkbook

    On Error Resume Next
    For I = 1 To 3
        wb.SendMail "name@provider.nl", _
                    "This is the Subject line"
        If Err.Number = 0 Then Exit For
    Next I
    On Error GoTo 0
End Sub
 
loek,

als ik dit in een nieuw bestand plak, iets in het tabblad zet, het e-mailadres aanpas en de macro laat lopen, lijkt er niets te gebeuren.
Geen foutmelding, maar er komt ook geen mailtje aan op het opgegeven e-mailadres
 
Dat komt omdat je dezelfde fout krijgt maar die zie je niet vanwege die On Error Resume Next.
Kan je niet gewoon Outlook er voor gebruiken?
Die SendMail heb ik nog nooit prettig zien werken en mist ook veel opties.
 
edmoor,

degene waar ik dit voor maak heeft geen outlook, dus dat gaat helaas niet.

Via zoeken denk ik wellicht iets gevonden te hebben m.b.v. CDO.

Ik houd je op de hoogte!
 
CDO voorbeelden heb ik wel voor je als je wilt.
 
Dat wordt vanavond, maar komt goed.
 
Alvast bedankt!
 
Hier nog een andere optie voor mail met CDO

Code:
'This procedure will mail the whole workbook
'You can 't send a Workbook that is open with CDO.
'That's why it use SaveCopyAs to save it with another name and send that file.


Sub CDO_Mail_Workbook()
    Dim wb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim FileExtStr As String
    Dim iMsg As Object
    Dim iConf As Object
    Dim Flds As Variant

    Set wb = ActiveWorkbook

    If Val(Application.Version) >= 12 Then
        If wb.FileFormat = 51 And wb.HasVBProject = True Then
            MsgBox "There is VBA code in this xlsx file, there will be no VBA code in the file you send." & vbNewLine & _
            "Save the file first as xlsm and then try the macro again.", vbInformation
            Exit Sub
        End If
    End If

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    'Make a copy of the file/Mail it/Delete it
    'If you want to change the file name then change only TempFileName
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Copy of " & wb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
    FileExtStr = "." & LCase(Right(wb.Name, Len(wb.Name) - InStrRev(wb.Name, ".", , 1)))

    wb.SaveCopyAs TempFilePath & TempFileName & FileExtStr

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1    ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "[COLOR="#FF0000"]Fill in your SMTP server here[/COLOR]"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With

    With iMsg
        Set .Configuration = iConf
        .To = "[COLOR="#FF0000"]Hier tussen het emailadres[/COLOR]"
        .CC = ""
        .BCC = ""
        .From = "[COLOR="#FF0000"]Hier tussen de afzender zijn emailadres[/COLOR]"
        .Subject = "This is a test"
        .TextBody = "This is the body text"
        .AddAttachment TempFilePath & TempFileName & FileExtStr
        .Send
        If Err.Number = 0 Then
            MsgBox "Sucsesvol verzonden op : " & Format(Date, "dd-mm-yyyy") & Format(TimeValue(Now), " hh:mm"), vbInformation, "Email"
        Else
            MsgBox "FOUT : Email is niet verzonden." & vbNewLine & vbNewLine & _
            "Mogelijke oorzaak :" & vbNewLine & _
            "Geen Internet, of smtp server connectie." & vbNewLine & _
            "Er is geen emailadres ingevuld.", vbCritical, "Unsuspected error."
            Set iMsg = Nothing
            Set iConf = Nothing
            Set Flds = Nothing
            Exit Sub
        End If
    End With

    'If you not want to delete the file you send delete this line
    Kill TempFilePath & TempFileName & FileExtStr

    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub
 
Laatst bewerkt:
edmoor en loek010,

bedankt voor jullie bijdragen, hier kan ik wel mee verder!
 
@Haije

Nog een aanvulling op je vraag van tabblad verzenden via CDO mail

Deze verzend alleen de ActiveSheet als een xlsx naar de betreffende ontvanger.
wel even de emailadressen en de smtp server van je internet provider invullen in sheet Data.
 

Bijlagen

@willem,

bedankt!
 
@Haije

Geen dank, graag gedaan hoop dat dit de bedoeling was, en wel werkt zoals je gedacht had
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan