zwerg: VBA - SendMail() funktioniert nicht

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

  1. 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

    1. 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

      1. 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

        1. 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
          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.

          "0"

          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

          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

          1. 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

            1. 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

              1. Hallo Alex,

                vielleicht hilft Dir http://www.vbforums.com/showthread.php?t=321314 weiter?

                Freundliche Grüße

                Vinzenz