18.07.2019, 15:08
Hallihallo allerseits,
ich bin schon ziemlich weit gekommen, habe also quasi fast alles fertig und jetzt komm ich einfach nicht weiter, hinterher werde ich bestimmt feststellen dürfen, dass es wie so oft ganz einfach war.
Ist zustand:
Riesige exceltabelle, pro spalte Name, email, materialnummer, teilenummer, auftragsnummer.
jetzt muss ich an eine bstimmte Auswahl von kontakten eine email senden, welche mit anrede Namen (mit platzhalter) direkt aus der liste senden kann.
dazu mache ich ein kreuz in die dafür bestimmte zelle drücke auf den button senden. und Fertig.
sehr geehrte [@Name]
blablabla
blablablablablbal
[nummer1]
[nummer2]
[nummer3]
Soll Zustand
zusätzlich zum namen, sollen auch die fehlenden werte mittels Platzhalter eingrfügt werden.
also die drei nummern sollen durch Platzhalter ebenfalls beigeführt werden.
das ist der gesamte Code, den Platzhalter (hier unten) würde ich ganz gerne einfach erweitern, dass geht aber nicht, da Excel immer nur den letzten wert berücksichtigt.
wenn ich also die zeile einfach kopiere und abgeendert für eine nummer unten drunter einfüge, wird mein Name nicht mehr eingefügt.
ich hoffe ihr könnt mir helfen
ich bin schon ziemlich weit gekommen, habe also quasi fast alles fertig und jetzt komm ich einfach nicht weiter, hinterher werde ich bestimmt feststellen dürfen, dass es wie so oft ganz einfach war.
Ist zustand:
Riesige exceltabelle, pro spalte Name, email, materialnummer, teilenummer, auftragsnummer.
jetzt muss ich an eine bstimmte Auswahl von kontakten eine email senden, welche mit anrede Namen (mit platzhalter) direkt aus der liste senden kann.
dazu mache ich ein kreuz in die dafür bestimmte zelle drücke auf den button senden. und Fertig.
sehr geehrte [@Name]
blablabla
blablablablablbal
[nummer1]
[nummer2]
[nummer3]
Soll Zustand
zusätzlich zum namen, sollen auch die fehlenden werte mittels Platzhalter eingrfügt werden.
also die drei nummern sollen durch Platzhalter ebenfalls beigeführt werden.
Code:
Sub BtnEmail_Senden()
Send_Email
End Sub
Private Sub Send_Email()
'-------------< Send_Email() >-------------
Dim sTitle As String
sTitle = "Statusabfrage"
'< HMTL holen >
Dim sTemplate As String
sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame2.TextRange.Text
'</ HMTL holen >
'----< Send with Outlook >----
Dim app_Outlook As Outlook.Application
Set app_Outlook = New Outlook.Application
'--< Email einstellen >--
Dim objEmail As Outlook.MailItem
Dim sEmail_Address As String
Dim iRow As Integer
For iRow = 2 To 9999
If Cells(iRow, 15) = "x" Then
'< get Email Address >
'Column 2, B
sEmail_Address = Cells(iRow, 13)
'</ get Email Address >
'< Fill Placeholders >
Dim sHTML As String
sHTML = Replace(sTemplate, "[@Name]", Cells(iRow, 14))
'</ Fill Placeholders >
'--< Send Email >--
Set objEmail = app_Outlook.CreateItem(olMailItem)
objEmail.To = sEmail_Address
objEmail.Subject = sTitle
'objEmail.HTMLBody = sHTML '*use .HTMLBody for HTML
objEmail.Body = sHTML '*and .body for pure Text
objEmail.Display
'--</ Send Email >--
End If
Next
'< Abschluss >
Set objEmail = Nothing
Set app_Outlook = Nothing
'</ Abschluss >
MsgBox "Emails erstellt", vbInformation, "Fertig"
'----</ Send with Outlook >----
'-------------</ Send_Email() >-------------
End Sub
'---get Text--
'sTemplate = Sheets("ini_Vorlage").Shapes(1).DrawingObject.Text
'sTemplate = Sheets("ini_Vorlage").Shapes(1).TextFrame.Characters.Text
'or sHTML=Sheets("ini_Vorlage").Shapes(1).Textframe.Characters.Text
'.TextRange.Characters.Text
das ist der gesamte Code, den Platzhalter (hier unten) würde ich ganz gerne einfach erweitern, dass geht aber nicht, da Excel immer nur den letzten wert berücksichtigt.
wenn ich also die zeile einfach kopiere und abgeendert für eine nummer unten drunter einfüge, wird mein Name nicht mehr eingefügt.
ich hoffe ihr könnt mir helfen

Code:
'< Fill Placeholders >
Dim sHTML As String
sHTML = Replace(sTemplate, "[@Name]", Cells(iRow, 14))
'</ Fill Placeholders >