Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern unter und per Mail senden VBA

Speichern unter und per Mail senden VBA
17.08.2016 14:49:11
soldierart@web.de
Hallo,
habe mir ein Makro zusammengebastelt aus dem Netz, welches das aktive Workbook speichern soll und per E-Mail an eine zentrale Stelle geschickt werden soll.
Da die Datei bei allen unterschiedlich heißen wird (persönliche Nummer und Datum) am Schluss, habe ich variablen E1, D1 und E2 angelegt. Die Datei soll immer auf Laufwerk H im Ordner Datei abgespeichert werden. Hier liegt mein Problem. Das Makro speichert mir die Datei immer auf dem Desktop oder im Ordner eigene Dateien ab. Woran liegt das?
Hier das Makro:

Sub SpeichernUndSenden()
Dim PName As String
Dim MName As String
Dim JName As String
Dim Dateiname As String
Dim pfad As String
Dim olApp As Object
Dim objMail As Object
PName = Range("E2")
MName = Range("D1")
JName = Range("E1")
Dateiname = PName & "_" & MName & JName & ".xls"
pfad = "H:\Datei"
ActiveWorkbook.SaveAs Filename:=pfad & Dateiname
Set olApp = CreateObject("Outlook.Application")
Set objMail = olApp.CreateItem(0)
With objMail
.To = "Alpha@Bravo.com"
.Subject = "Datei " & PName
.Body = "Hier die Datei " & MName & JName & vbNewLine & .Body
.Attachments.Add ActiveWorkbook.FullName
.Send
MsgBox "Die Datei wurde unter " & Range("H2") & " abgelegt" & " und an Anna @ Bravo per  _
Mail versandt."
End With
Set objMail = Nothing
Set olApp = Nothing
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
So auf die Schnelle...
17.08.2016 14:56:44
Case
Hallo, :-)
... würde ich sagen, dass hier noch ein Backslash (\) am Ende fehlt: ;-)
pfad = "H:\Datei"
Servus
Case

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Speichern und Versenden von Excel-Dateien per VBA


Schritt-für-Schritt-Anleitung

Um ein aktives Workbook in Excel zu speichern und per E-Mail zu versenden, kannst Du das folgende VBA-Makro verwenden. Stelle sicher, dass Du den richtigen Dateipfad angibst, um zu verhindern, dass die Datei an einem unerwünschten Ort gespeichert wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein, indem Du auf Einfügen > Modul klickst.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub SpeichernUndSenden()
    Dim PName As String
    Dim MName As String
    Dim JName As String
    Dim Dateiname As String
    Dim pfad As String
    Dim olApp As Object
    Dim objMail As Object

    PName = Range("E2")
    MName = Range("D1")
    JName = Range("E1")
    Dateiname = PName & "_" & MName & JName & ".xls"
    pfad = "H:\Datei\"  ' Hier den Backslash hinzufügen

    ActiveWorkbook.SaveAs Filename:=pfad & Dateiname
    Set olApp = CreateObject("Outlook.Application")
    Set objMail = olApp.CreateItem(0)

    With objMail
        .To = "Alpha@Bravo.com"
        .Subject = "Datei " & PName
        .Body = "Hier die Datei " & MName & JName & vbNewLine & .Body
        .Attachments.Add ActiveWorkbook.FullName
        .Send
        MsgBox "Die Datei wurde unter " & pfad & " abgelegt und an Alpha@Bravo.com per Mail versandt."
    End With

    Set objMail = Nothing
    Set olApp = Nothing
End Sub
  1. Passe den Code an Deine Bedürfnisse an (z.B. E-Mail-Adresse, Dateinamensschema).
  2. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Die Datei wird nicht im gewünschten Ordner gespeichert:

    • Stelle sicher, dass Du einen Backslash (\) am Ende des Dateipfades hinzufügst: pfad = "H:\Datei\".
  • Outlook öffnet sich nicht oder E-Mail wird nicht gesendet:

    • Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Das Makro verwendet die Outlook-Anwendung, um die E-Mail zu versenden.
  • Fehlermeldung beim Versenden der E-Mail:

    • Stelle sicher, dass der Empfänger korrekt eingegeben wurde und dass Du eine aktive Internetverbindung hast.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du die Datei manuell speichern und die E-Mail über Outlook versenden. Du kannst auch die Funktion "Speichern unter" in Excel verwenden, um die Datei an den gewünschten Speicherort zu sichern, bevor Du sie per E-Mail versendest.


Praktische Beispiele

  • Dateipfad als Link in Mail einfügen: Um den Dateipfad als klickbaren Link in der E-Mail einzufügen, kannst Du den folgenden Code verwenden:
.Body = "Hier die Datei " & MName & JName & vbNewLine & "Dateipfad: " & "<a href='" & pfad & Dateiname & "'>" & pfad & Dateiname & "</a>"
  • Dateipfad per Mail versenden: Um den Dateipfad in den Body der E-Mail einzufügen, füge einfach pfad & Dateiname zur .Body-Eigenschaft hinzu.

Tipps für Profis

  • Automatisierung: Überlege, ob Du das Makro so anpassen kannst, dass es automatisch zu bestimmten Zeiten ausgeführt wird, z.B. durch die Verwendung von Application.OnTime.

  • Fehlerbehandlung: Füge eine Fehlerbehandlung hinzu, um sicherzustellen, dass das Makro bei unerwarteten Fehlern nicht abstürzt. Du kannst dazu On Error GoTo Fehlerbehandlung verwenden.


FAQ: Häufige Fragen

1. Wie kann ich den Dateipfad ändern? Du kannst den Dateipfad in der Zeile pfad = "H:\Datei\" anpassen.

2. Kann ich das Makro auch in anderen Excel-Versionen verwenden? Ja, das Makro ist in den meisten modernen Excel-Versionen (z.B. Excel 2013, 2016, 2019 und 365) funktionsfähig.

3. Wie kann ich sicherstellen, dass die Datei erfolgreich gesendet wurde? Das Makro zeigt eine Meldung an, wenn die Datei erfolgreich gespeichert und die E-Mail gesendet wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige