VBA - SendMail() funktioniert nicht
zwerg
- sonstiges
0 Vinzenz Mai0 zwerg1 Vinzenz Mai0 zwerg0 Vinzenz Mai0 zwerg
Glück auf!
Ich versuche mit folgendem VBA-Code das ausgewählte Tabellenblatt in eine neue Arbeitsmappe zu kopieren (funktioniert) und dann per Email zu versenden (funktioniert leider nicht).
Sub AktuelleTabelleMailen()
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SendMail _
Recipients:="tippspiel@zwergenspiegel.de", _
Subject:="Tippspiel"
ActiveWorkbook.Close savechanges:=False
End Sub
Ich nutze Excel 2003 und als Standard Email-Client "Outlook Express 6".
"Funktioniert leider nicht" bedeutet übrigens, dass die Tabelle zwar ein eine neue Arbeitsmappe kopiert wird, jedoch nicht versendet wird. Fehlermeldung: "Laufzeitfehler '1004': Die Methode 'SendMail' für das Objekt '_Workbook' ist fehlgeschlagen"
Wenn ich manuell über Datei/Senden an/Email-Epfänger gehe funktioniert der Spaß übrigens; daran dass "Outlook Express" kein echter MAPI E-Mail-Client ist, kann es also doch nicht liegen, oder?
Freundliche Grüße
zwerg Alex
Hallo
Wenn ich manuell über Datei/Senden an/Email-Epfänger gehe funktioniert der Spaß übrigens; daran dass "Outlook Express" kein echter MAPI E-Mail-Client ist, kann es also doch nicht liegen, oder?
ja, doch, sicher, siehe mein Archivposting.
Freundliche Grüße
Vinzenz
Glück auf Vinzenz!
Hallo
Wenn ich manuell über Datei/Senden an/Email-Epfänger gehe funktioniert der Spaß übrigens; daran dass "Outlook Express" kein echter MAPI E-Mail-Client ist, kann es also doch nicht liegen, oder?
ja, doch, sicher, siehe mein Archivposting.
Mit deinem Code bekomme ich die gleiche Fehlermeldung :-(
Freundliche Grüße
zwerg Alex
Hallo
Wenn ich manuell über Datei/Senden an/Email-Epfänger gehe funktioniert der Spaß übrigens; daran dass "Outlook Express" kein echter MAPI E-Mail-Client ist, kann es also doch nicht liegen, oder?
ja, doch, sicher, siehe mein Archivposting.
Mit deinem Code bekomme ich die gleiche Fehlermeldung :-(
sag' ich doch. Schrieb' ich doch. Steht überall groß MAPI dabei
Was gibt Dir
debug.print Me.Application.MailSystem
im Direktbereich aus?
Es gibt drei Konstanten:
xlNoMailSystem
xlMAPI
xlPowerTalk
Wenn Du xlNoMailSystem erhältst (bei meinem Excel 2007 wäre das der Wert 0),
dann hast Du kein verwendbares Mailsystem - so einfach ist das.
Folgender Code (im Modul des Workbook-Objektes) sollte es tun:
Public Sub MapiSendMail()
Dim xlWB As Workbook
On Error GoTo Err_Sub
' Überprüfe das vorhandene Mailsystem
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
Select Case Me.Application.MailSystem
Case xlNoMailSystem
MsgBox "Kein verwendbares Mailsystem vorhanden"
Exit Sub
Case xlPowerTalk
MsgBox "Entsorgen Sie Ihren Mac, kaufen Sie sich einen PC :-)"
' In diesem Fall müsste man die Methode SendMailer verwenden
Exit Sub
Case xlMAPI
MsgBox "Wunderbar, Mailversand über MAPI geht."
Case Else
MsgBox "Du bist mir unbekannt, ich kann Dich nicht nutzen"
Exit Sub
End Select
' 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
Bitte beachte: Bei dieser Prozedur gilt:
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
Freundliche Grüße
Vinzenz
sag' ich doch. Schrieb' ich doch. Steht überall groß MAPI dabei
In den verlinkten archivierten Thread war von Outlook-Express die Rede, deshalb habe ich dich so verstanden, dass mein Code mit Express nicht funktioniert, deiner jedoch schon.
Was gibt Dir
debug.print Me.Application.MailSystem
im Direktbereich aus?
Es gibt drei Konstanten:xlNoMailSystem
xlMAPI
xlPowerTalkWenn Du xlNoMailSystem erhältst (bei meinem Excel 2007 wäre das der Wert 0),
dann hast Du kein verwendbares Mailsystem - so einfach ist das.
"0"
Folgender Code (im Modul des Workbook-Objektes) sollte es tun:
Public Sub MapiSendMail()
Dim xlWB As WorkbookOn Error GoTo Err_Sub
' Überprüfe das vorhandene Mailsystem
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglichSelect Case Me.Application.MailSystem
Case xlNoMailSystem
MsgBox "Kein verwendbares Mailsystem vorhanden"
Exit Sub
Case xlPowerTalk
MsgBox "Entsorgen Sie Ihren Mac, kaufen Sie sich einen PC :-)"
' In diesem Fall müsste man die Methode SendMailer verwenden
Exit Sub
Case xlMAPI
MsgBox "Wunderbar, Mailversand über MAPI geht."
Case Else
MsgBox "Du bist mir unbekannt, ich kann Dich nicht nutzen"
Exit Sub
End Select' 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
Bitte beachte: Bei dieser Prozedur gilt:
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
' Mailversand ist nur mit MAPI möglich
Soweit einen Code für einen MAPI-Client zu erstellen war ich ja schon. Mit der Fehlermeldung ist das ganze jetzt zwar runder, aber mein Problem kriege ich so auch nicht gelöst.
Vielen Dank für deine Hilfe Vinzenz. Danke insbesondere für deine Geduld, da ich dich nicht sofort richtig verstanden hab.
Werde nun davon Abstand nehmen, die Tippabgabe aus Excel zu ermöglichen und ein "einfaches" online Formular nehmen.
Freundliche Grüße
zwerg Alex
Hallo Alex,
dann hast Du kein verwendbares Mailsystem - so einfach ist das.
"0"
Du hast ein Problem mit Deiner Outlook-Express-Installation.
Soweit einen Code für einen MAPI-Client zu erstellen war ich ja schon. Mit der Fehlermeldung ist das ganze jetzt zwar runder, aber mein Problem kriege ich so auch nicht gelöst.
Ich habe gerade meinen Standardmailclient auf Outlook Express eingestellt,
ein Konto eingerichtet - und die Prozedur (die übrigens ein Me. zuviel enthält)
könnte problemlos auch über Outlook Express eine Mail versenden, wenn ich
zustimme (und das Konto richtig konfiguriert wäre).
Du solltest es vielleicht mit einer Reparaturinstallation von OE versuchen.
Freundliche Grüße
Vinzenz
Ich habe gerade meinen Standardmailclient auf Outlook Express eingestellt,
ein Konto eingerichtet - und die Prozedur (die übrigens ein Me. zuviel enthält)
könnte problemlos auch über Outlook Express eine Mail versenden, wenn ich
zustimme (und das Konto richtig konfiguriert wäre).Du solltest es vielleicht mit einer Reparaturinstallation von OE versuchen.
Ich habe die Tabelle mit dem Makro gerade mal an meine Freundin geschickt, die auch OE nutzt. Dort ist das gleiche Problem. An einem fehlerhaften OE liegt es somit wohl nicht. Keine Ahnung warum das bei dir funktioniert.. Ich finde das echt super nett, wie du weiter versuchst mir zu helfen. Aber selbst wenn ich das jetzt bei mir zum Laufen kriege, sind da noch 20 Teilnehmer des Tippspiels, die vmtl. mit ihrem System auch mit ähnlichen Problemen zu kämpfen hätten. Ich wollte mit der Excel-Variante einen Tippzettel schaffen, der es meinen Freunden ermöglicht, ihre Tipps in einer gewohnten Arbeitsumgebung (Excel) ihre Tipps in Ruhe evtl. mit Zwischenspeichern abzugeben, ohne sich umständlich bis zum Versenden durchzuklicken. Ich dachte, das wäre angenehmer, als wenn man die Tipps online in ein Formular einträgt. Außerdem hätte mir das die Auswertung, die ich mit Excel mache einfacher gemacht. Naja, Letzteres ist mir dann nicht ganz so wichtig, wie eine möglichst bequeme Tippabgabe für meine Freunde, so dass ich von der Excel-Variante mit Makro weg bin und nun versuche bis zur Winterpause noch eine Variante mit PHP und MySQL hinzukriegen. Ist insgesamt vlt. auch eleganter, aber wird mich wohl die Dezemberwochenenden kosten.
Freundliche Grüße
zwerg Alex
Hallo Alex,
vielleicht hilft Dir http://www.vbforums.com/showthread.php?t=321314 weiter?
Freundliche Grüße
Vinzenz