Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: alad am Oktober 22, 2018, 08:28:25 Vormittag

Titel: Ersetzen mehrerer Placeholder in einem Text über VBA
Beitrag von: alad am Oktober 22, 2018, 08:28:25 Vormittag
Hallo zusammen,

folgendes Problem:

In meinem E-Mail Text möchte ich [@Bestellung] und [@Name] ersetzen durch zugewiesene Strings.

Das Problem ist nun das ich es nur schaffe immer eins der beiden zu ersetzen.

sTemplate = Sheets("Text").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 sName_Ansprech As String
    Dim sBestellung As String
    Dim sEmail_Address As String
   
   
    Dim iRow As Integer
    For iRow = 4 To 100
        If Cells(iRow, 3) = "x" Then
           
            sBestellung = Cells(iRow, 8)
            sName_Ansprech = Cells(iRow, 9)
            sEmail_Address = Cells(iRow, 2)
           
            '< Fill Placeholders >
           
            Dim sHTML As String
            sHTML = Replace(sTemplate, "[@Bestellung]", sBestellung)
            sHTML = Replace(sTemplate, "[@Name]", sName_Ansprech)
           
   

           
            '</ 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 False
            objEmail.Send
            '--</ 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

Das ganze sieht aktuell im Text so aus.

Hallo [@Name] ,

ich möchte Sie an die unten Aufgeführte/n Bestellung/en erinneren.

[@Bestellung]
               

MFG

Hans Hinterspu

Leider wird hier nur der Name bzw Bestellung ersetzt, was kann ich hier tun damit ich beide Placeholder ersetzte und diese in meinen E-Mail Text habe?

Danke im Voraus.

Im Anhang findet ihr die Datei.

Titel: Antw: Ersetzen mehrerer Placeholder in einem Text über VBA
Beitrag von: maninweb am Oktober 22, 2018, 08:56:31 Vormittag
Hallo,

statt sHTML = Replace(sTemplate, "[@Name]", sName_Ansprech) dann sHTML = Replace(sHTML , "[@Name]", sName_Ansprech) nehmen.

Gruß
Titel: Antw: Ersetzen mehrerer Placeholder in einem Text über VBA
Beitrag von: alad am Oktober 22, 2018, 09:00:19 Vormittag
Super, vielen Dank. Dachte das wird schwieriger.