Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Email per VBA senden, alle Dateien eines Ordners a

Email per VBA senden, alle Dateien eines Ordners a
13.10.2017 11:09:14
Patrick
Hallo zusammen,
ich habe ein funktionierendes Script, mit dem ich Emails aus Excel per Makro senden kann. Ich muss zusätzlich Dateien anhängen, welche unterschiedlich benannt sind, jedoch alle im selben (variablen) Ordner sich befinden.
Mit letztem komme ich nicht zurecht. Mein bisheriger Code:
Sub ZusendungUnterlagenRemoteberatung()
Set oApp = CreateObject("Outlook.Application")
On Error Resume Next
With oApp.CreateItem(0)
Application.Wait1
.Sensitivity = 3
.To = Range("B7")
.Subject = "Betreff"
.Body = Range("G6") & vbCr & vbCr & _
"Text." & vbCr & vbCr & _
"Text" & vbCr & vbCr & _
"Text" & vbCr & _
"Text" & vbCr & _
.Display
End With
On Error GoTo 0
Set oApp = Nothing
End Sub
Der Pfad zum Ordner wird separat in Excel in B8 hinterlegt.
Wie bekomme ich es hin, dass der obigen Email mehrere Dateien (5-50) automatisch anhängen lassen, wobei der Pfad variabel aus B8 gezogen wird?
Ich habe schon alles durchsucht, vieles getestet und nichts klappte.
Wichtig: Andere Dateien zwecks begutachten des Codes ist mir nicht möglich (Dienst-PC)
Ein über jede Hilfe erfreuter
Patrick
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email per VBA senden, alle Dateien eines Ordners a
13.10.2017 11:30:32
Nepumuk
Hallo,
ein Beispiel:
Public Sub ZusendungUnterlagenRemoteberatung()
    Dim strFolder As String, strFilename As String
    Dim oApp As Object
    
    Set oApp = CreateObject("Outlook.Application")
    
    strFolder = Worksheets("Tabelle1").Cells(8, 2).Value
    If Left$(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
    
    With oApp.CreateItem(0)
        
        .Sensitivity = 3
        .To = Range("B7")
        .Subject = "Betreff"
        .Body = Worksheets("Tabelle1").Range("G6") & vbCr & vbCr & _
            "Text." & vbCr & vbCr & _
            "Text" & vbCr & vbCr & _
            "Text" & vbCr & _
            "Text" & vbCr
        
        strFilename = Dir$(strFolder & "*")
        
        Do Until strFilename = vbNullString
            
            Call .Attachments.Add(strFolder & strFilename)
            
            strFilename = Dir$
            
        Loop
        
        .Display
        
    End With
    Set oApp = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Email per VBA senden, alle Dateien eines Ordners a
13.10.2017 11:43:21
Patrick
Hallo Nepumuk,
danke für die Antwort.
Lasse ich die E-Mail mit dem Code erstellen, erscheint kein Text mehr (Body) und es wird nur "0" angezeigt.
Woran kann das liegen bzw. wie kann ich dieses lösen?
Ich hatte diesen Code auch vorher schon probiert und das selbe Ergebnis erhalten.
Gruß,
Patrick
Anzeige
AW: Email per VBA senden, alle Dateien eines Ordners a
13.10.2017 12:13:28
Nepumuk
Hallo Patrick,
kann ich nicht nachvollziehen. Lad mal eine Mustermappe hoch.
Gruß
Nepumuk
AW: Email per VBA senden, alle Dateien eines Ordners a
16.10.2017 08:46:01
Patrick
Hallo Nepumuk (und andere),
anbei die Mustermappe. Es geht mir um die untersten Makros unter "Einladung Remoteberatung". Bei "Email an Kunde mit BP UND Antrag" ist das nicht funktionierende Makro hinterlegt.
https://www.herber.de/bbs/user/116976.xlsm
Ich hoffe, Du (Ihr) habt eine Idee...
Gruß und guten Start in die Woche,
Patrick
Anzeige
AW: Email per VBA senden, alle Dateien eines Ordners a
16.10.2017 10:48:19
Patrick
Entschuldige, ich habe wohl an einer Stelle das & _ nicht entfernt. Es klappt alles.
Vielen Dank!!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

E-Mails mit Anhängen aus Excel per VBA versenden


Schritt-für-Schritt-Anleitung

Um E-Mails mit mehreren Anhängen aus einem Excel-Dokument per VBA zu versenden, kannst du folgendes Makro verwenden. Dieses Beispiel zeigt, wie du alle Dateien eines bestimmten Ordners automatisch an eine E-Mail anhängst und die E-Mail über Outlook versendest.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Public Sub ZusendungUnterlagenRemoteberatung()
    Dim strFolder As String, strFilename As String
    Dim oApp As Object

    Set oApp = CreateObject("Outlook.Application")

    ' Pfad zum Ordner aus Zelle B8 holen
    strFolder = Worksheets("Tabelle1").Cells(8, 2).Value
    If Left$(strFolder, 1) <> "\" Then strFolder = strFolder & "\"

    With oApp.CreateItem(0)
        .Sensitivity = 3
        .To = Range("B7")
        .Subject = "Betreff"
        .Body = Worksheets("Tabelle1").Range("G6") & vbCr & vbCr & _
                "Text." & vbCr & vbCr & _
                "Text" & vbCr & vbCr & _
                "Text" & vbCr & _
                "Text"

        strFilename = Dir$(strFolder & "*")

        Do Until strFilename = vbNullString
            .Attachments.Add strFolder & strFilename
            strFilename = Dir$
        Loop

        .Display
    End With

    Set oApp = Nothing
End Sub
  1. Stelle sicher, dass der Pfad zum Ordner in Zelle B8 korrekt ist und die E-Mail-Adresse in Zelle B7 steht.
  2. Führe das Makro aus, um die E-Mail mit den Anhängen zu erstellen.

Häufige Fehler und Lösungen

  • Problem: Kein Text im E-Mail-Body wird angezeigt.

    • Lösung: Überprüfe, ob du das & _ am Ende der Zeilen entfernt hast. Dies kann zu unerwartetem Verhalten führen.
  • Problem: E-Mail wird nicht gesendet oder erstellt.

    • Lösung: Stelle sicher, dass Outlook korrekt installiert ist und du die benötigten Berechtigungen hast.
  • Problem: Anhänge fehlen oder sind nicht sichtbar.

    • Lösung: Überprüfe den Pfad in Zelle B8 und stelle sicher, dass die Dateien tatsächlich im angegebenen Ordner vorhanden sind.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch:

  • Outlook direkt verwenden, um mehrere Anhänge manuell hinzuzufügen.
  • Power Automate nutzen, um automatisierte E-Mail-Prozesse zu erstellen, wenn du mit Microsoft 365 arbeitest.

Praktische Beispiele

  1. E-Mail mit einem Ordnerinhalt versenden:

    • Verwende den oben genannten VBA-Code und passe den Pfad in B8 an, um alle Dateien in einem bestimmten Ordner zu versenden.
  2. Spezifische Dateitypen anhängen:

    • Ändere die Zeile strFilename = Dir$(strFolder & "*") zu strFilename = Dir$(strFolder & "*.pdf"), um nur PDF-Dateien anzuhängen.

Tipps für Profis

  • Nutze xlFileDialog in VBA, um den Benutzer den Ordner wählen zu lassen, anstatt einen festen Pfad zu verwenden.
  • Implementiere Fehlerbehandlungen im Code, um sicherzustellen, dass das Skript auch bei Problemen nicht abstürzt.
  • Speichere den Code in einer persönlichen Makroarbeitsmappe, damit du ihn in verschiedenen Excel-Dateien verwenden kannst.

FAQ: Häufige Fragen

1. Kann ich ganze Ordner an eine E-Mail anhängen? Ja, das oben dargestellte Makro fügt alle Dateien aus einem bestimmten Ordner als Anhänge hinzu.

2. Wie kann ich mehrere Dateien per E-Mail versenden? Verwende das bereitgestellte VBA-Skript, um alle Dateien im Ordner anzuhängen, indem du den Dateipfad automatisch aus einer Excel-Zelle beziehst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige