Microsoft Excel

Herbers Excel/VBA-Archiv

E-Mail aus Excel VBA


Betrifft: E-Mail aus Excel VBA von: Marsl
Geschrieben am: 08.08.2016 11:42:36

Hallo,

habe hier einen Code, der mir von Spalte B- n die zweite Zeile in Outlook kopiert und es an die Empfänger per Mail schickt

Also B1 bekommt Info B2// C1, bekommt Info C2 etc...

Ich müsste jetzt noch bei jedem Emfänger einen Bereich A1 - A5 einfügen. Dieser ist bei allen gleich. Soll auch vom Format her gleich sein wie in Excel.

Jemand ne Idee wie man das einbindet? Hier der Code

Sub Excel_StundenPerMail()
    'Dim ClpObj As DataObject
    'Outlook-Objekte
    Dim OutApp As Object, Mail As Object
    Dim Nachricht
    Dim varEmpf, strBody As String
    
    Dim wks As Worksheet, rngData As Range
    Dim Spalte As Long, Spalte_L As Long, Zeile_L As Long
    
    Set wks = ActiveSheet
    
    Set OutApp = CreateObject("Outlook.Application")
    Set ClpObj = New DataObject
    
    With wks
        'letzter Empfänger in Zeile 5
        Spalte_L = .Cells(1, .Columns.Count).End(xlToLeft).Column
        
        For Spalte = .Range("B1").Column To Spalte_L Step 1
            Zeile_L = .Cells(.Rows.Count, Spalte).End(xlUp).Row
            varEmpf = .Cells(1, Spalte).Text
            If Zeile_L >= 1 Then
                'Datenbereich für E-Mail ab Zeile 2 setzen
                Set rngData = .Range(.Cells(2, Spalte), .Cells(Zeile_L, Spalte))
                'Bereich wird in die Zwischenablage kopiert
                rngData.Copy
                ClpObj.GetFromClipboard
                strBody = ClpObj.GetText(1)
            Else
                Set rngData = Nothing
                strBody = "keine Nachrichten"
            End If
            'Nachricht erstellen in Outlook
            Set Nachricht = OutApp.CreateItem(0)
            With Nachricht
                .Subject = "TESTMAIL"
                'Zwischenablage wird eingefügt
                .Body = strBody
                .To = varEmpf
                'Hier wird die Mail angezeigt
                '.Display
                'Hier wird die Mail gleich in den Postausgang gelegt
                .Send
            End With
            
            'Auf Outlook warten.
            Application.Wait (Now + TimeSerial(0, 0, 2)) '2 Sekunden Wartezeit
            Set Nachricht = Nothing
        Next Spalte
        Set OutApp = Nothing
    End With
End Sub

  

Betrifft: AW: E-Mail aus Excel VBA von: Marsl
Geschrieben am: 09.08.2016 07:33:03

Keiner eine Idee?


  

Betrifft: AW: E-Mail aus Excel VBA von: mumpel
Geschrieben am: 09.08.2016 09:50:09

Hallo!

"Gleich sein wie in Excel" ist technisch bedingt nicht möglich. Und Du solltest sicherstellen dass der/die Empfänger HTML-Mails darstellen können. Email erstellen - Teil 1

Gruß, René


  

Betrifft: AW: E-Mail aus Excel VBA von: Marsl
Geschrieben am: 09.08.2016 11:32:23

Hmm, ok etwas zu kompliziert, ich schick das Ganze per Anhang, dann passts.

Wie füge ich denn in der Mail noch den Text aus A1 und A2 ein? Kann man das irgendwie noch zufügen?
Sprich das Makro soll A2 & A3 in alle Mails kopieren und B2, C2, D2 bis n2 automatisch "anpassen"


  

Betrifft: AW: E-Mail aus Excel VBA von: Marsl
Geschrieben am: 09.08.2016 13:25:53

Habs mit nem htmlbody hinbekommen....

.htmlBody = Range("A1") & " sind " & strBody & " angefallen " & Range("A3") & Range("A4") & Range("A5") & Range("A6") & Range("A7") & Range("A8") & "berücksichtigen" & _