Zellbereich in HTMLbody einfügen (Range bis einschließlich letzter genutzter Zeile) VBA Mail
Hallo zusammen,
sitze seit geraumer Zeit an folgendem Code und finde den Fehler leider nicht. Hoffe jemand kennt die Lösung!
Mit dem Code werden automatische Mails generiert. Dabei sollen dem Body an letzter Stelle der Zelleninhalt im Range Spalte B bis Spalte J (Zeile 8 bis letzte gefüllte Zeile in Spalte A) hinzugefügt werden.
Danke für jede Hilfe.
sitze seit geraumer Zeit an folgendem Code und finde den Fehler leider nicht. Hoffe jemand kennt die Lösung!
Mit dem Code werden automatische Mails generiert. Dabei sollen dem Body an letzter Stelle der Zelleninhalt im Range Spalte B bis Spalte J (Zeile 8 bis letzte gefüllte Zeile in Spalte A) hinzugefügt werden.
Danke für jede Hilfe.
Sub Anfrage()
'
' Anfrage Makro
'
' Tastenkombination: Strg+m
'
letztezeile = Worksheets("Master").Cells(Rows.Count, 1).End(xlUp).Row
Dim MyOutApp As Object, MyMessage As Object
Dim rng As Range
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Der Empfänger stehen in Spalte B ab Zeile 3
.To = Range("B3") 'E-Mail Adresse
'Der Betreff in Spalte A
.Subject = Range("B4") '"Betreffzeile"
.HTMLBody = "<p style='font-family:Arial'>" & Range("B5") & "</p>" _
& "<p style='font-family:Arial'>" & Range("B6") & "</p>" _
& "<p style='font-family:Arial'>" & Range("B7") & "</p>" _
& Sheets("MASTER").Range("B8:J" & Cells(Rows.Count, 1).End(xlUp).Row)
.Display
End With
'Objectvariablen leeren
Set MyOutApp = Nothing 'CreateObject("Outlook.Application")
Set MyMessage = Nothing 'MyOutApp.CreateItem(0)
'Sendepause einschalten
'Outlook kann die Aufträge nicht schnell genug verarbeiten
Application.Wait (Now + TimeValue("0:00:01"))
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 318580
Url: https://administrator.de/forum/zellbereich-in-htmlbody-einfuegen-range-bis-einschliesslich-letzter-genutzter-zeile-vba-mail-318580.html
Ausgedruckt am: 28.04.2025 um 12:04 Uhr
1 Kommentar

Sheets("MASTER").Range("B8:J" & Cells(Rows.Count, 1).End(xlUp).Row)
Was erwartest du hier? Das ein Range automatisch zu einer HTML-Tabelle wird ?? Das kann so ja niemals klappen. Ein Objekt aus Zellen mit Eigenschaften ist kein String...Durchlaufe den Range mit zwei Verachachtelten For-Schleifen (eine für die Zeilen und die innere für die Spalten) und setze damit deinen HTML-Code für eine Tabelle zusammen. Diesen kannst du dann In die Mail einfügen.
Oder du arbeitest mit Copy und Paste. Range kopieren und dann übers Outlook Objekt in die Mail pasten.