Excel: Eine Kopie speichern und per E-Mail versenden
Schritt-für-Schritt-Anleitung
Um in Excel eine Kopie zu speichern und diese anschließend per E-Mail zu versenden, kannst du den folgenden VBA-Code verwenden. Dieser speichert die Datei im Ursprungsordner und erstellt dann eine Kopie in einem anderen Verzeichnis.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".
- Kopiere den folgenden Code in das Modul:
Sub A_Schaltfläche3_Klicken()
Dim strFileName As String
Application.DisplayAlerts = False
' Ursprüngliche Datei speichern
ActiveWorkbook.SaveAs "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm"
' Dateinamen aus Zelle
strFileName = Cells(50, 1).Value
' Überprüfen, ob das Verzeichnis existiert
If Dir("Y:\Test", vbDirectory) = "" Then
MkDir ("Y:\Test")
End If
' Kopie speichern
ActiveWorkbook.SaveCopyAs "Y:\Test\" & strFileName & "_" & Format(ActiveSheet.Range("O7"), "dd_mm_yyyy") & ".xlsm"
' E-Mail senden
ActiveWorkbook.SendMail Recipients:="Test@web.de", Subject:=strFileName & "_" & Format(ActiveSheet.Range("O7"), "dd_mm_yyyy")
Application.DisplayAlerts = True
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Füge einen Button hinzu, um das Makro auszuführen.
Dieser Code ermöglicht es dir, die Datei als Kopie zu speichern und sie direkt per E-Mail zu versenden, ohne manuell „Speichern unter“ auswählen zu müssen.
Häufige Fehler und Lösungen
-
Fehler beim Speichern der Kopie: Wenn das Dateiformat nicht erkannt wird, stelle sicher, dass du die Dateiendung in deinem Speichercode korrekt angibst. Verwende den Dateinamen mit der richtigen Endung wie .xlsm
.
-
E-Mail wird nicht gesendet: Überprüfe die Empfängeradresse und stelle sicher, dass dein E-Mail-Client korrekt eingerichtet ist.
Alternative Methoden
Eine effiziente Alternative zum Speichern einer Excel-Kopie ist die Verwendung des FileCopy
-Befehls. Dieser Befehl kopiert die Datei in ein anderes Verzeichnis, ohne die Datei zuerst zu speichern. Hier ist ein einfaches Beispiel:
Sub KopieSpeichern()
FileCopy "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm", "Y:\Test\Kopie_Test.xlsm"
End Sub
Praktische Beispiele
- Kopiere eine Datei in ein anderes Verzeichnis: Verwende den
FileCopy
-Befehl, um eine Kopie zu speichern, z.B.:
FileCopy "C:\MeinOrdner\Datei.xlsx", "C:\MeinOrdner\Kopie_Datei.xlsx"
- E-Mail-Versand mit Outlook: Um sicherzustellen, dass die E-Mail korrekt gesendet wird, kannst du Outlook-Objekte verwenden.
Tipps für Profis
-
Verwende die Methode SaveCopyAs
, um sicherzustellen, dass die Originaldatei nicht überschrieben wird. Dies ist besonders nützlich, wenn du häufig Änderungen vornimmst und eine Sicherungskopie benötigst.
-
Du kannst auch Application.DisplayAlerts
auf True
setzen, um Warnmeldungen während des Speicherns anzuzeigen.
FAQ: Häufige Fragen
1. Wie kann ich eine Excel-Datei als Kopie speichern?
Du kannst eine Excel-Datei als Kopie speichern, indem du den Befehl SaveCopyAs
im VBA verwendest, wie im obigen Beispiel gezeigt.
2. Welche Dateiformate kann ich mit Excel speichern?
Excel unterstützt verschiedene Dateiformate, darunter .xls
, .xlsx
und .xlsm
für Makros.
3. Wie sende ich eine Excel-Datei per E-Mail?
Verwende die Methode SendMail
, um eine Excel-Datei direkt aus VBA zu versenden. Stelle sicher, dass dein E-Mail-Client korrekt konfiguriert ist.
4. Kann ich auch Word-Dokumente per E-Mail senden?
Ja, du kannst ähnliche VBA-Methoden verwenden, um eine Kopie von Word-Dokumenten zu speichern und zu versenden.