Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt via Email verschicken und speichern

Tabellenblatt via Email verschicken und speichern
16.01.2008 20:06:22
Dustbin2001
Hallo zusammen,
ich hoffe dass mir jemand von Euch helfen kann. Leider kenn ich mich mit Makros so gut wie gar nicht aus, versuche mich aber gerade einzuarbeiten.
Folgendes Problem:
Ich habe eine Excel Datei mit ca. 50 Tabellenblättern. Jedes Tabellenblatt ist im Kopf (Zeile 1 - 10) gleich aufgebaut und lediglich ab Zeile 11 - xxx unterschiedlich. In Zelle C3 befindet sich eine vollständige Email Adresse. Da es nun mühsam wäre, jedes Tabellenblatt einzeln zu speichern und via Outlook zu versenden, hoffe ich auf ein Makro.
Mit Marko soll jedes einzelne Tabellenblatt als neue Arbeitsmappe gespeichert werden (aus 50 Tabellenblättern werden also 50 Arbeitsmappen mit je einem Tabellenblatt). Der Dateiname der neuen Mappe soll dem Tabellenblattnamen (z. B. Tabelle1) entsprechen. Das Speicherverzeichnis ist dabei gleich wie bei der Ausgangsdatei. Alle Formate, Spaltenbreiten usw. sollen beibehalten werden. Sobald dies geschehen ist, soll eine neue Email erstellt werden, mit einem fix vorgegebenen Text. Die bereits vorher gespeicherte Arbeitsmappe soll jetzt als Anhang der Mail hinzugefügt werden und an den Empfänger aus Zelle C3 versendet werden.
Über ein Beispielmakro würde ich mich sehr freuen und bedanke mich schonmal im Voraus!
Gruß
Dustbin2001

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt via Email verschicken und speich
16.01.2008 20:40:00
Beverly
Hi,
schau mal auf meine HP, Seite "Beispiele m. VBA". Dort findest du das Beispiel "E-Mail versenden". Das Makro1 wäre für deine Zwecke wahrscheinlich günstig. Du müsstest allerdings die Zeile

ActiveWorkbook.Close False


durch diese beiden Zeilen ersetzen


ActiveWorkbook.Save ThisWorkbook.Path & strTabelle & ".xls"
ActiveWorkbook.Close


und in dieser Zeile


ActiveWorkbook.SendMail ThisWorkbook.Worksheets("Tabelle1").Cells(5, 1), "Diese Tabelle wurde als Mail versandt"


5, 1 durch 3, 3 ersetzen.



Anzeige
AW: Tabellenblatt via Email verschicken und speich
16.01.2008 20:51:42
mumpel
Hallo!
Hier mal ein Beispielcode. Funktioniert bei mir bestens.

Sub MailSenden()
Application.ScreenUpdating = False
On Error Resume Next
Dim empfänger As String
Dim i As Integer
Dim aws As String
Dim olapp As Object
For i = 1 To 50
Sheets(i).Activate
empfänger = Sheets(i).Range("C3").Value
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SaveAs ActiveSheet.Name
aws = ActiveWorkbook.FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
Set rng = Selection
.To = empfänger
'.CC = "" 'Optional Kopie an
'.BCC = "" 'Optional Blindkopie an
.Subject = "Abrechnung vom " & Date
.HtmlBody = "Sehr geehrte Damen und Herren,
anbei die Abrechnung.
Mit _ freundlichen Grüßen,
Unterschrift" .attachments.Add aws .Display SendKeys "%s", True 'Mail sofort senden ActiveWorkbook.Close Set olapp = Nothing End With Next i Sheets(1).Activate Application.ScreenUpdating = True End Sub


Gruß, Rene

Anzeige
Nachtrag:
16.01.2008 21:02:00
mumpel
Die Zeile "Set rng = Selection" kannst Du löschen, ist nicht notwendig (stammt aus einem anderen Codeteil meines Projekts)

AW: Tabellenblatt via Email verschicken und speich
16.01.2008 21:13:38
Dustbin2001
Hallo,
vielen Dank für die prompten Hilfen.
Ich werde es gleich morgen testen!
Viele Grüße
Dustbin2001

AW: Tabellenblatt via Email verschicken und speich
16.01.2008 21:31:56
Dustbin2001
Hallo Rene,
funktioniert schon ganz gut.
Allerdings weiß ich nicht warum, aber irgendwie hat er kein Ende gefunden. Es war wie eine Schleife die immer weiter machte. So kam es dass zwar die richtigen Mails mit Anhang verschickt wurden (im Test), aber auch einige Mails ohne Anhang folgten. Außerdem wollte er, nachdem die Tabellenblätter einmal korrekt gespeichert waren nochmals neu speichern. Und das immer so weiter ...
Außerdem kommt ein Syntaxfehler bei .HtmlBody?
Wie ist das möglich?
Gruß

Anzeige
AW: Tabellenblatt via Email verschicken und speich
17.01.2008 04:10:09
mumpel
Hallo!
Kann ich nicht nachvollziehen. Bei mir geht es fehlerfrei von der ersten bis zur letzten Mail. Nenne uns mal die ganze Fehlermeldung.
Gruß, Rene
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt via Email verschicken und speichern


Schritt-für-Schritt-Anleitung

Um ein einzelnes Tabellenblatt aus Excel zu versenden, kannst du ein Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Arbeitsmappe mit den Tabellenblättern.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub MailSenden()
       Application.ScreenUpdating = False
       On Error Resume Next
       Dim empfänger As String
       Dim i As Integer
       Dim aws As String
       Dim olapp As Object
       For i = 1 To 50
           Sheets(i).Activate
           empfänger = Sheets(i).Range("C3").Value
           ActiveWorkbook.ActiveSheet.Copy
           ActiveWorkbook.SaveAs ActiveSheet.Name & ".xlsx"
           aws = ActiveWorkbook.FullName
           Set olapp = CreateObject("Outlook.Application")
           With olapp.CreateItem(0)
               .To = empfänger
               .Subject = "Abrechnung vom " & Date
               .HtmlBody = "Sehr geehrte Damen und Herren,<br> anbei die Abrechnung.<br> Mit freundlichen Grüßen,<br> Unterschrift"
               .Attachments.Add aws
               .Display
               SendKeys "%s", True 'Mail sofort senden
           End With
           ActiveWorkbook.Close False
       Next i
       Sheets(1).Activate
       Application.ScreenUpdating = True
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Drücke ALT + F8, wähle MailSenden und klicke auf "Ausführen".

Mit diesem Makro kannst du ein einzelnes Tabellenblatt per Mail versenden, ohne jedes Blatt manuell speichern zu müssen.


Häufige Fehler und Lösungen

  • Schleifenproblematik: Wenn das Makro in einer Schleife hängt, stelle sicher, dass du die Anzahl der zu versendenden Blätter korrekt eingestellt hast. Überprüfe auch, ob die Schleife nicht auf leere Blätter zugreift.

  • Syntaxfehler bei .HtmlBody: Achte darauf, dass der Text in HtmlBody korrekt formatiert ist. Wenn du Anführungszeichen im Text verwendest, musst du sie durch "" ersetzen.

  • Fehlende E-Mail-Adresse: Stelle sicher, dass in Zelle C3 eine gültige E-Mail-Adresse steht, sonst kann das Makro nicht versenden.


Alternative Methoden

Wenn du kein Makro verwenden möchtest, kannst du auch die Funktion "Speichern unter" verwenden, um das einzelne Tabellenblatt manuell als neue Datei zu speichern und dann die Datei in einer E-Mail anzuhängen.

  1. Rechtsklick auf das Tabellenblatt.
  2. Wähle "Verschieben oder Kopieren" und dann "Neues Arbeitsbuch".
  3. Speichere das neue Arbeitsbuch und füge es als Anhang in deiner E-Mail hinzu.

Praktische Beispiele

Ein Beispiel für den Versand eines einzelnen Tabellenblatts könnte so aussehen:

  • Du hast eine Arbeitsmappe mit 50 Rechnungen in 50 verschiedenen Blättern.
  • In Zelle C3 jedes Blattes steht die E-Mail-Adresse des Kunden.
  • Mit dem oben genannten Makro werden alle Rechnungen automatisch als E-Mail verschickt, ohne dass du jedes Blatt einzeln speichern musst.

Tipps für Profis

  • Testen: Teste das Makro zunächst mit einer kleinen Anzahl von Blättern, um sicherzustellen, dass alles wie gewünscht funktioniert.
  • Automatisierung: Du kannst das Makro so einstellen, dass es regelmäßig ausgeführt wird, um wiederkehrende Berichte automatisch zu versenden.
  • Fehlerprotokoll: Füge Funktionen hinzu, um Fehler zu protokollieren, falls eine E-Mail nicht gesendet werden kann.

FAQ: Häufige Fragen

1. Kann ich mehrere Tabellenblätter gleichzeitig versenden?
Ja, du kannst die For-Schleife im Makro anpassen, um mehrere Blätter gleichzeitig zu versenden.

2. Wie kann ich das Makro anpassen, um nur ein bestimmtes Blatt zu versenden?
Ändere die Schleife und setze i auf die Nummer des gewünschten Blatts, z.B. For i = 5 To 5 für das 5. Blatt.

3. Funktioniert das auch in der Mac-Version von Excel?
Die grundlegenden Funktionen sind ähnlich, jedoch kann die Interaktion mit Outlook in der Mac-Version abweichen. Es kann erforderlich sein, Anpassungen im Code vorzunehmen.

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