Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Replace in einem Textfeld, VBA
19.01.2022 18:51:30 Dennis
NotSolved
20.01.2022 00:22:49 xlKing
NotSolved

Ansicht des Beitrags:
Von:
Dennis
Datum:
19.01.2022 18:51:30
Views:
641
Rating: Antwort:
  Ja
Thema:
VBA Replace in einem Textfeld, VBA

Hallo liebe Community,

ich muss ein VBA Projekt erstellen. Es soll eine automatische Zahlungsbestätigung erstellt werden als Email. Der Vorlagetext liegt als Text in einem Excelblatt mit drei Platzhaltern "@Name", "@Zahlbetrag" und "@Bestellnummer".

 

Ich möchte, dass wenn sich Outlook öffnet, der Standardtext im Email Body zeigt und die Platzhalter entsprechend einer weiteren Excelliste ersetzt werden.

 

Das ersetzten durch den Platzhalter funktionert auch, jedoch wird der Standardtext dreimal erstellt und jeweils einmal der Platzhalter ausgefüllt. Am Ende steht der Standardtext dreimal in der Email, wobei jeweils nur einmal pro Text ein Platzhalter richtig replaced wird.

 

Private Sub Send_Email()
    
    Dim sTitle As String
        sTitle = Tabelle2.Range("B2")
    
    'Body Text holen
    Dim sTemplate As String
    sTemplate = Sheets("Email").Shapes(1).TextFrame2.TextRange.Text

     'Senden mit Outlook
    Dim app_Outlook As Outlook.Application
    Set app_Outlook = New Outlook.Application
   
    'Email einstellen
    Dim objEmail As Outlook.MailItem
      
    
'   -------------------------------------------------------------------------------------------
    Dim sEmail_Name As String
    Dim sEmail_Zahlbetrag As String
    Dim sEmail_Bestellnummer As String
    
     
    Dim iZeile As Integer
    For iZeile = 5 To 50
        If Cells(iZeile, 8) = "x" Then
            
            sEmail_Name = Cells(iZeile, 2)
        Dim sName As String
            sName = Replace(sTemplate, "[@Name]", sEmail_Name)
            
            sEmail_Zahlbetrag = Cells(iZeile, 7)
        Dim sZahlbetrag As String
            sZahlbetrag = Replace(sTemplate, "[@Zahlbetrag]", sEmail_Zahlbetrag)
            
            sEmail_Bestellnummer = Cells(iZeile, 1)
        Dim sBestellnummer As String
            sBestellnummer = Replace(sTemplate, "[@Bestellnummer]", sEmail_Bestellnummer)
   
   
    'Elemente Email und anzeigen
           
        Dim sEmail_Addresse As String
        sEmail_Addresse = Cells(iZeile, 4)
        

            Set objEmail = app_Outlook.CreateItem(olMailItem)
            objEmail.SentOnBehalfOfName = "fastanswer1.0@web.de"
            objEmail.To = sEmail_Addresse
            objEmail.Subject = sTitle

            objEmail.Body = sName & sZahlbetrag & sBestellnummer
            objEmail.Display
            
      
     End If
   Next
     


            
    
'--------------------------------------------------------------------------------------------------
    
    'Abschluss
    Set objEmail = Nothing
    Set app_Outlook = Nothing
    
    
    
    MsgBox "Zahlungsbestätigung wurde erfolgreich erstellt", vbInformation, "Don't work hard, Work smart!"
    
    
 End Sub


Private Sub Zahlungsbestätigungcmd_Click()

Send_Email

End Sub
    

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Replace in einem Textfeld, VBA
19.01.2022 18:51:30 Dennis
NotSolved
20.01.2022 00:22:49 xlKing
NotSolved