Thema Datum  Von Nutzer Rating
Antwort
Rot Email aus Excel per VBA versenden
21.09.2021 11:13:12 Mike
NotSolved
21.09.2021 19:01:54 Mase
Solved
22.09.2021 11:25:17 Mike
NotSolved

Ansicht des Beitrags:
Von:
Mike
Datum:
21.09.2021 11:13:12
Views:
990
Rating: Antwort:
  Ja
Thema:
Email aus Excel per VBA versenden

Hallo zusammen

Ich kenne mich mit VBA nicht gut aus und würde gerne eine Funktion erstellen, die vom Excel aus eine Mail per Outlook versendet. Die Mail soll sich auf eine Bestellliste derselben Arbeitsmappe beziehen.  Ich habe nun mit diversen Vorlagen eine Funktion zusammengebastelt, welche nun immer am Laufzeitfehler '9' Index ausserhalb des gültigen Bereichs scheitert. Meine Funktion sieht wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Public Sub Send_Email()
    '-------------< Send_Email() >-------------
    Dim sTitle As String
    sTitle = "Bestellung"
         
    '< HMTL holen >
    Dim sTemplate As String
    '</ HMTL holen >
     
    Dim ws As Worksheet
    Set ws = Sheets("_programm")
     
    '----< Send with Outlook >----
    Dim app_Outlook As Outlook.Application
    Set app_Outlook = New Outlook.Application
    
    Dim objEmail As Outlook.MailItem
         
    With objEmail
            
                        
            '< Fill Placeholders >
            Dim sHTML As String
            Dim varChar
             
            For Each varChar In Sheets("_text").Shapes(1).TextFrame2.TextRange.Characters
             
            Dim char_Text As String
            char_Text = varChar.Text
             
            char_Text = Replace(char_Text, vbCrLf, "<br>")
            char_Text = Replace(char_Text, vbLf, "<br>")
             
            Next
             
            sHTML = sHTML & char_Text
 
             
            Dim tblBestellliste As ListObject
            Set tblBestellliste = ws.ListObjects("tblBestellliste")
             
             
             Dim iRow As Integer
             For iRow = 2 To tblBestellliste.ListRows.Count
              
             Next
              
                Dim sText As String
                sText = sHTML
     
                Dim iCol As Integer
                For iCol = 1 To tblBestellliste.ListColumns.Count
                    Dim sPlaceholder As String
                    sPlaceholder = tblBestellliste.Range(1, iCol)
                    sPlaceholder = Trim(sPlaceholder)
                    Dim sValue As String
                    sValue = tblBestellliste.Range(iRow, iCol)
                    sValue = Trim(sValue)
                    '< replace >
                    If Not sPlaceholder Like "" Then
                        sText = Replace(sText, "[@" & sPlaceholder & "]", sValue, , , vbTextCompare)
 
                     
                    End If
                 
            Next
            '--< Send Email >--
            Set objEmail = app_Outlook.CreateItem(olMailItem)
            objEmail.To = "email@mail.com"
            objEmail.Subject = sTitle
            objEmail.HTMLBody = sText
            objEmail.Display False
            objEmail.Send
             
End With
 
End Sub

Hat mir jemand einen Tipp?

Danke und beste Grüsse

Mike


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 Email aus Excel per VBA versenden
21.09.2021 11:13:12 Mike
NotSolved
21.09.2021 19:01:54 Mase
Solved
22.09.2021 11:25:17 Mike
NotSolved