Excel - Makro, um Tabellenblatt per Email zu versenden.
Alex
- software
Hallo,
ich will per Knopfdruck das aktive (also die Tabelle, in der man den Knopf drückt) Tabellenblatt (nicht die ganze Arbeitsmappe!) an eine feste Emailadresse verschicken. Leider kenne ich mich mit Makros nur wenig aus und per Aufzeichnung kriege ich das nicht hin, weil über "Datei/Senden An/Emailempfänger" ja gleich die gesamte Datei verschickt wird.
Ich wäre dankbar, wenn einer mal kurz den "Self-Gedanken" vergisst und mir ein Makro zur Verfügung stellt. Eigentlich ist es auch garkein Verstoss, weil ich schon soviel in der Tabelle "geselft" habe ;-)
Hallo Alex,
ich will per Knopfdruck das aktive (also die Tabelle, in der man den Knopf drückt) Tabellenblatt (nicht die ganze Arbeitsmappe!) an eine feste Emailadresse verschicken.
mit welchem E-Mail-Client soll das funktionieren?
Freundliche Grüße
Vinzenz
Hallo Vinzenz
mit welchem E-Mail-Client soll das funktionieren?
Idealerweise mit jedem, gut wär auch mit den meisten gängigen Programmen, gerade noch akzeptabel wär mit Outlook(-Express). Kann es nur für einen bestimmten oder wenige Clients realisiert werden, vergesse ich das am besten wieder.
Ich dachte das ist unabhängig und das Script greift wie bei der manuellen Auswahl (Datei->Senden) auf dem als Standard festgelegten Client zurück.
Hallo Alex,
mit welchem E-Mail-Client soll das funktionieren?
Ich dachte das ist unabhängig und das Script greift wie bei der manuellen Auswahl (Datei->Senden) auf dem als Standard festgelegten Client zurück.
also mit einem MAPI-fähigen Client :-)
Folgender Code (im Modul des Workbook-Objektes) sollte es tun:
Public Sub MapiSendMail()
Dim xlWB As Workbook
On Error GoTo Err_Sub
' Kopiere das aktuelle Tabellenblatt in eine neue Arbeitsmapppe
Me.ActiveSheet.Copy
' Greife auf diese neue Arbeitsmappe
Set xlWB = ActiveWorkbook
' Versende Mail über MAPI - Bestätigung typischerweise erforderlich :-)
' Anlage enthält eine Excel-Mappe Mappe<nr>.xls mit dem aktuellen Blatt
' Mailbody ist leer - beste Voraussetzungen, um als Spam klassifiziert
' zu werden.
xlWB.SendMail "max.mustermann@example.org", "Hier der Betreff"
' Schließe die Datei, ohne Änderungen zu speichern
xlWB.Close False
' Gebe Ressourcen frei
Set xlWB = Nothing
Exit Sub
Err_Sub:
' Primitive nichtfunktionale Fehler-"behandlung"
MsgBox Err.Number & vbCrLf & Err.Description
Exit Sub
End Sub
Für Serienmail ohne so etwas wie "ClickYes" nicht verwendbar :-)
Ja, das ist gut so!
Freundliche Grüße
Vinzenz
Guten Morgen,
also mit einem MAPI-fähigen Client :-)
Joa, wenn du das sagst :-)
Folgender Code (im Modul des Workbook-Objektes) sollte es tun:
Public Sub MapiSendMail()
Dim xlWB As WorkbookOn Error GoTo Err_Sub
' Kopiere das aktuelle Tabellenblatt in eine neue Arbeitsmapppe
Me.ActiveSheet.Copy' Greife auf diese neue Arbeitsmappe
Set xlWB = ActiveWorkbook' Versende Mail über MAPI - Bestätigung typischerweise erforderlich :-)
' Anlage enthält eine Excel-Mappe Mappe<nr>.xls mit dem aktuellen Blatt
' Mailbody ist leer - beste Voraussetzungen, um als Spam klassifiziert
' zu werden.
xlWB.SendMail "max.mustermann@example.org", "Hier der Betreff"' Schließe die Datei, ohne Änderungen zu speichern
xlWB.Close False' Gebe Ressourcen frei
Set xlWB = NothingExit Sub
Err_Sub:
' Primitive nichtfunktionale Fehler-"behandlung"
MsgBox Err.Number & vbCrLf & Err.Description
Exit SubEnd Sub
Vielen Dank für deinen ausführlichen Code und die Kommentierung.
Dieses Makro gibt bei mir (Excel 97) nur leider folgende Fehlermeldung aus:
"Fehler beim Kompilieren: Unzulässige Verwendung des Schlüsselwortes Me."
> Für Serienmail ohne so etwas wie "ClickYes" nicht verwendbar :-)
> Ja, das ist gut so!
Finde ich auch. Bei mir geht es darum, dass die Teilnehmer eines privaten Bundesliga-Tippspieles die von mir erstellten Tippformulare (je Spieltag ein Tabellenblatt) möglichst einfach ausgefüllt zurücksenden können.
Freundlicher Gruß
Alex
"Fehler beim Kompilieren: Unzulässige Verwendung des Schlüsselwortes Me."
Ohne das "Me." vor " ActiveSheet.Copy "funktioniert der Spaß :-)
Vielen lieben Dank Vinzenz.