Mehrere Sheets von einer Mappe per E-Mail senden
Schritt-für-Schritt-Anleitung
Um mehrere Sheets aus einer Excel-Arbeitsmappe per E-Mail zu senden, kannst du den folgenden VBA-Code verwenden. Dieser Code sendet nur die benötigten Blätter, ohne Makros oder Formeln einzufügen:
Sub Mail_Sheets_Array()
Dim OutApp As Object
Dim OutMail As Object
Dim TempFilePath As String
Dim TempFileName As String
Dim Sourcewb As Workbook
Dim Destwb As Workbook
' Arbeitsmappe setzen
Set Sourcewb = ThisWorkbook
' Temporäre Arbeitsmappe erstellen
Sourcewb.Sheets(Array("Jahreskasse", "Monatskasse", "Tageskasse")).Copy
Set Destwb = ActiveWorkbook
' E-Mail senden
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "deine.email@example.com"
.Subject = "Mehrere Sheets"
.Body = "Hier sind die angeforderten Sheets."
.Attachments.Add Destwb.FullName
.Display ' Zum Testen anzeigen, zum Senden .Send verwenden
End With
' Temporäre Arbeitsmappe schließen
Destwb.Close False
' Outlook-Objekte freigeben
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Häufige Fehler und Lösungen
-
Laufzeitfehler '438': Dieser Fehler tritt auf, wenn du versuchst, auf ein nicht vorhandenes Objekt zuzugreifen. Stelle sicher, dass die Blattnamen korrekt sind. Verwende die genaue Schreibweise: "Jahreskasse", "Monatskasse" und "Tageskasse".
-
E-Mail wird nicht gesendet: Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Der Code verwendet die Outlook-Objektbibliothek, um E-Mails zu senden.
Alternative Methoden
Wenn du kein VBA verwenden möchtest, gibt es auch manuelle Methoden:
- Mappe als .xlsx speichern: Speichere die Arbeitsmappe im .xlsx-Format, um VBA-Codes zu deaktivieren.
- Blätter kopieren: Erstelle eine neue Arbeitsmappe, kopiere die benötigten Blätter und füge die Werte ohne Formeln ein.
- E-Mail senden: Sende die neue Arbeitsmappe per E-Mail.
Diese Methode ist besonders nützlich, wenn du den VBA-Code nicht beherrscht.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du die oben genannten Schritte in der Praxis umsetzt:
- Erstelle eine neue Excel-Datei und benenne die Blätter entsprechend.
- Füge den VBA-Code in ein neues Modul ein (Alt + F11, dann Einfügen > Modul).
- Ändere die E-Mail-Adresse im Code auf deine eigene.
- Führe das Makro aus, um die Sheets per E-Mail zu versenden.
Tipps für Profis
- Verwende Kommentare im Code: Dies hilft dir, den Code leichter zu verstehen und zu bearbeiten.
- Teste den Code gründlich: Bevor du das Makro in einer produktiven Umgebung verwendest, führe umfangreiche Tests durch.
- Überlege, den Code zu optimieren: Du kannst weitere Funktionen hinzufügen, wie das Anhängen von zusätzlichen Dateien oder das automatische Ausfüllen des Betreffs.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Sheets gleichzeitig versenden?
Du kannst die Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
-Methode verwenden, um mehrere Blätter in einer neuen Arbeitsmappe zu kopieren und dann zu senden.
2. Geht das auch ohne Outlook?
Ja, du kannst die Blätter auch lokal speichern und dann manuell per E-Mail senden, wenn du kein Outlook nutzen möchtest.
3. Was passiert mit Makros und Formeln in den Blättern?
Im oben angegebenen Code werden nur die Werte und das Format der Blätter kopiert, wodurch Makros und Formeln nicht in die neue Arbeitsmappe eingefügt werden.