Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro benötigt:Tabellenblätter per Email versenden

Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 08:44:34
Michel
Hallo zusammen
Ich stehe vor folgender Ausgangslage:
1 Excel mit 60 verschiedenen Tabellenblätter, die Ziel-Emailadresse jeweils auf den einzelnen Tabellenblättern in Zelle D8.
Ziel wäre es, per Makro-Knopfdruck alle 60 Tabs mit einem bestimmten Emailtext an die jeweilige Email-Adresse in D8 zu senden.
Ich habe primär 2 Probleme:
1. Dass alle Tabs versendet werden
2. Dass die Email-Adresse jeweils automatisch von der Zelle D8 übernommen wird.
Kann mir da jemand weiterhelfen?
LG
Michel
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 09:09:33
baschti007
So was ?
Gruß Basti
Sub SendMyMail()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
ws.UsedRange.Copy
With objMail
.To = ws.Range("D8")
.Subject = "Betreff"
.GetInspector().WordEditor.Range.Paste
.Display '------(.Send) sendet die email sofort
End With
Set objOL = Nothing
Next
End Sub

Anzeige
AW: Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 10:24:45
Michel
Besten Dank für die Hilfe!
@Basti: Folgende Fehlermeldung, wenn ich dein Makro laufen lassen:
Laufzeitfehler - Sie müssen in die Felder "an", "cc" und "bcc" mindestens einen Namen oder eine Kontaktgruppe eingeben.
Kann dies damit zusammenhängen, dass die Zelle D8 die jeweilige Email-Adresse als SV-Verweis holt?
Anzeige
Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 10:33:03
baschti007
Dafür müsstest du deine Beispiel Mappe hochladen kann ich dir so nicht sagen ;)
AW: Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 11:24:41
Michel
Anbei das TestFile. Die Tabs A und B beispielsweise müssen versendet werden. Alle Zahlen stammen vom Tab "Übersicht" - dieses darf nicht versendet werden.
https://www.herber.de/bbs/user/107097.xlsx
Anzeige
Makro benötigt:Tabellenblätter per Email versenden
19.07.2016 11:36:57
baschti007
=D Mach mal aus ws.Range("D8")
ws.Range("C8")
;) Verbundene Zellen deshalb
AW: Warum immer verbundene Zellen? o.w.T
19.07.2016 11:53:37
Werner
AW: Warum immer verbundene Zellen? o.w.T
19.07.2016 12:13:04
baschti007
Das musst du Ihn Fragen ;) ich hab die Verbundenen Zellen nicht erstellt =D
Anzeige
AW: Aber du hattest das Problem damit. 😂 (Profi?)
19.07.2016 12:19:24
Werner
AW: Aber du hattest das Problem damit. 😂 (Profi?)
19.07.2016 12:21:58
baschti007
Nein Noch sehr sehr .........weit entfernt von Profi =D ich kann nur Googlen ;) aber das reicht ja auch für die meisten Dinge die ich brauche .
AW: Mißverständnis
19.07.2016 12:48:27
Werner
Hallo,
ich habe die Level Einschätzung des Fragestellers gemeint.
Gruß Werner
Anzeige
AW: Mißverständnis
19.07.2016 14:01:26
Michel
Inwiefern mich ein Zellenverbund nun als "Excel-Profi" disqualiziert, ist mir nicht klar - aber mir auch ziemlich egal.
@Baschti: Leider klappt das automatische Versenden so nicht. Es wird lediglich das Email eröffnet und das Excel in den Textbereich kopiert.
AW: Mißverständnis
19.07.2016 14:07:53
baschti007
Hallo Michel ich bin auch kein Profi oder so was alles gut =)
Ich habe hinter doch dieses hier geschrieben
musst .Send dort noch in die email einfügen dann sendet er diese .
.Display '------(.Send) sendet die email sofort
also so
.Send
Gruß Basti
Anzeige
AW: Mißverständnis
19.07.2016 14:11:56
Michel
Logisch, sry! Aber wie bekomme ich das Excel als Anhang in das Email anstatt eine Excel-Tabellenkopie in den Textbereich des Emails?
AW: Mißverständnis
19.07.2016 15:10:24
baschti007
Uff jaa ich bin wie gesagt nicht so der Profi aber dafür sollte es reichen Hier guck mal =)
Gruß basti
https://www.herber.de/bbs/user/107101.xlsm
PS= ich habe .Send wieder deaktiviert also denk dran das du es bei dir änderst
Anzeige
"Excel als Anhang"... Mit meiner Variante unten LG
19.07.2016 15:48:50
Michael
OT: VerbundZellen wdn sowohl von Laien ...
19.07.2016 15:12:27
Laien
…als auch von Profis benutzt, Michel,
der Unterschied besteht nur darin, dass Erstere damit Probleme bekommen, Letztere aber nicht! ;-)
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Makro benötigt:Tabellenblätter per Email verse
19.07.2016 09:35:14
Michael
Hallo!
Eine Möglichkeit:
Sub MailVersand()
Dim OL As Object
Dim IsCreated As Boolean
Dim Wb As Workbook
Dim aWb As Workbook
Dim Ws As Worksheet
Dim An As String
Dim Dpfad As String
Dim clc
Set Wb = ThisWorkbook
With Application
clc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
On Error Resume Next
Set OL = GetObject(, "Outlook.Application")
If Err Then
Set OL = CreateObject("Outlook.Application")
IsCreated = True
End If
On Error GoTo 0
For Each Ws In Wb.Worksheets
Ws.Copy
Set aWb = ActiveWorkbook
aWb.SaveAs Wb.Path & "\" & Ws.Index, 51
Dpfad = aWb.FullName
An = aWb.Worksheets(1).Range("D8").Value
aWb.Close True
With OL.CreateItem(0)
.Subject = Title
.To = An
.Body = "Hier steht ein bestimmter Email-Text..."
.Attachments.Add Dpfad
.Send
End With
Kill Dpfad
Set aWb = Nothing
Next
If IsCreated Then OL.Quit
With Application
.Calculation = cld
.ScreenUpdating = True
End With
Set OL = Nothing
Set Wb = Nothing
Set Ws = Nothing
End Sub
Teste mal mit nur ein paar Blättern, die Du an Dich selbst versendest, bevor Du damit "live" gehst.
LG
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel Tabellenblätter per E-Mail versenden: So funktioniert's


Schritt-für-Schritt-Anleitung

Um Excel Tabellenblätter per E-Mail zu versenden, benötigst du ein Makro. Hier ist eine Schritt-für-Schritt-Anleitung, um das zu erreichen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub SendMyMail()
        Dim ws As Worksheet
        Dim objOL As Object
        Dim objMail As Object
        Set objOL = CreateObject("Outlook.Application")
    
        For Each ws In ThisWorkbook.Worksheets
            Set objMail = objOL.CreateItem(0)
            ws.UsedRange.Copy
    
            With objMail
                .To = ws.Range("D8").Value ' E-Mail-Adresse aus Zelle D8
                .Subject = "Betreff"
                .GetInspector().WordEditor.Range.Paste
                .Display ' Für das sofortige Senden verwende .Send
            End With
    
            Set objMail = Nothing
        Next ws
    
        Set objOL = Nothing
    End Sub
  4. Schließe den VBA-Editor und speichere deine Excel-Datei als Makro-aktivierte Datei (*.xlsm).

  5. Füge einen Button in dein Arbeitsblatt ein und verlinke ihn mit dem Makro SendMyMail.

  6. Klicke auf den Button, um alle Tabellenblätter per E-Mail zu versenden.


Häufige Fehler und Lösungen

  • Laufzeitfehler - Sie müssen in die Felder "an", "cc" und "bcc" mindestens einen Namen oder eine Kontaktgruppe eingeben.

    • Lösung: Stelle sicher, dass die Zelle D8 tatsächlich eine gültige E-Mail-Adresse enthält. Manchmal kann es sein, dass die E-Mail-Adresse aus einer Formel stammt, die nicht richtig ausgewertet wird.
  • Das Excel wird im Textbereich der E-Mail eingefügt, anstatt als Anhang gesendet zu werden.

    • Lösung: Ändere den Code so, dass das Excel-Dokument als Anhang hinzugefügt wird. Siehe den Abschnitt „Praktische Beispiele“.

Alternative Methoden

Eine andere Möglichkeit, eine Excel Tabelle per Mail zu versenden, besteht darin, die Arbeitsblätter zuerst in ein neues Workbook zu kopieren und dann das Workbook als Anhang zu versenden. Hier ist ein Beispiel:

Sub MailVersand()
    Dim OL As Object
    Dim aWb As Workbook
    Dim Ws As Worksheet
    Dim An As String
    Dim Dpfad As String

    Set OL = CreateObject("Outlook.Application")

    For Each Ws In ThisWorkbook.Worksheets
        Ws.Copy
        Set aWb = ActiveWorkbook
        Dpfad = "C:\Temp\" & Ws.Name & ".xlsx" ' Ändere den Pfad nach Belieben
        aWb.SaveAs Dpfad
        An = aWb.Worksheets(1).Range("D8").Value

        With OL.CreateItem(0)
            .To = An
            .Subject = "Betreff"
            .Body = "Hier steht ein bestimmter Email-Text..."
            .Attachments.Add Dpfad
            .Send
        End With

        aWb.Close False
        Kill Dpfad
    Next Ws
End Sub

Praktische Beispiele

Wenn du eine Excel Tabelle per Mail versenden möchtest, kannst du den Code so anpassen, dass er nur bestimmte Blätter auswählt. Zum Beispiel:

For Each ws In ThisWorkbook.Worksheets
    If ws.Name = "Tabelle1" Or ws.Name = "Tabelle2" Then
        ' Dein Code hier
    End If
Next ws

Mit dieser Technik kannst du sicherstellen, dass nur die gewünschten Tabellenblätter versendet werden.


Tipps für Profis

  • E-Mail-Versand testen: Bevor du das Makro für alle 60 Tabellenblätter ausführst, teste es mit nur ein oder zwei Blättern, um sicherzustellen, dass alles funktioniert.
  • Fehlermeldungen abfangen: Verwende On Error Resume Next, um zu verhindern, dass dein Makro bei einem Fehler stoppt. Vergiss jedoch nicht, die Fehlerbehandlung später zurückzusetzen.
  • Automatisierung: Du kannst das Makro so einstellen, dass es automatisch zu bestimmten Zeiten ausgeführt wird, indem du es mit Aufgabenplanung kombinierst.

FAQ: Häufige Fragen

1. Wie kann ich die E-Mail-Adressen aus einer anderen Zelle beziehen?
Du kannst die Zeile .To = ws.Range("D8").Value anpassen, um die E-Mail-Adresse aus einer anderen Zelle zu verwenden.

2. Funktioniert das Makro auch auf einem Mac?
Ja, du kannst das Makro auch auf einem Mac verwenden, allerdings kann die Outlook-Integration je nach Version des Betriebssystems variieren. Stelle sicher, dass du die richtige VBA-Syntax verwendest.

3. Was tun, wenn der Reiter für Serienmails in Excel fehlt?
Überprüfe deine Excel-Version und stelle sicher, dass die Funktion für Serienmails in deinem Excel aktiviert ist. Gehe zu den Excel-Optionen und aktiviere die entsprechenden Add-Ins.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige