Alex: Excel - Makro, um Tabellenblatt per Email zu versenden.

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 ;-)

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

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

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

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

            
          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
          
          1. "Fehler beim Kompilieren: Unzulässige Verwendung des Schlüsselwortes Me."

            Ohne das "Me." vor " ActiveSheet.Copy "funktioniert der Spaß :-)

            Vielen lieben Dank Vinzenz.