ich bin absoluter VBA Neuling, möchte das Ganze jedoch lernen und habe mir hierfür ein Projekt von meiner Arbeit ausgesucht.
Ich habe eine Tabelle, in der manuell gefiltert wird. Das Filterergebnis soll dann in den Mail-Body übernommen werden. Das klappt auch, jedoch habe ich folgende Probleme:
- Ich möchte zuerst den folgenden Text, bevor das Filterergebnis eingefügt wird:
Guten Tag,
um Ihre Reklamationen bearbeiten zu können, benötige ich bitte die folgenden Belege:
- Mit meiner Formel werden alle sichtbaren Daten von B6:C500 eingefügt. Dadurch ist die Email ewig lang und am Ende kommt die Signatur. Wie kopiere und füge ich nur die Zellen mit Daten ein?
Sub SendEmailWithFilteredExcelRangeInBody()
Dim objOutlook As Object
Dim objMail As Object
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Tabelle1").Range("A1:D10")
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
Range("A7:L500").SpecialCells(xlCellTypeVisible).Select
' Add recipients, subject, and body
objMail.To = Selection.Cells(1, 12).Value
objMail.subject = "ZUF p" & Selection.Cells(1, 8).Value & " / Krias " & Selection.Cells(1, 7).Value & "" & ": Anforderung von Belegen"
' Copy the visible cells after filtering
With ThisWorkbook.Worksheets("Tabelle1")
Set rng = .Range("B6:C999").SpecialCells(xlCellTypeVisible)
End With
'Convert the filtered range to a table
rng.Copy
objMail.GetInspector.WordEditor.Paragraphs(1).Range.Paste
objMail.Display 'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
End Sub