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

Mail versenden und Standardtext einfügen

Forumthread: Mail versenden und Standardtext einfügen

Mail versenden und Standardtext einfügen
01.01.2003 11:10:19
volker
Frohes Neues, ihr Forumler!
In einem Programmlauf wird der Benutzer gefragt ob er die erstellte EXCEL-Datei per mail versenden will. Dabei sollen Empfänger, Betreff und Mailtext gleich mit ausgegeben werden. Empfänger und Betreff kann ich automatisch einfügen lassen.
Wie bekomme ich VB dazu auch noch den Mailtext einzufügen??
Unten mein bisheriger Programmcode.
(Texte sind natürlich fiktiv :-))

Danke für die Hilfe!

Volker

Private Sub versenden()
Dim speichername as String
Dim senden As Integer
Dim mailRsp As Integer
Dim mailadresse As String
Dim betreff As String
Dim mailtext As String

senden = MsgBox("Willst Du nun die Datei versenden?", vbYesNo, "Versenden")
If senden = vbYes Then
mailadresse = "bundeskanzler@deutschland.de"
betreff = "Testdatei"
mailtext = "Hallo Bundeskanzler, die Steuern steigen und du erhälst deswegen mein letztes Hemd! Der Michel"
mailRsp = Application.Dialogs(xlDialogSendMail).Show _
arg1:= mailadresse, _
arg2:= betreff, _
arg????? := mailtext

End If
End Sub


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mail versenden und Standardtext einfügen
01.01.2003 15:41:11
Ramses
Hallo Volker,

Probier mal das:


Sub Excel_Workbook_via_Outlook_Senden()
    Dim Nachricht As Object, OutApp As Object
    Set OutApp = CreateObject("Outlook.Application")
    Dim AWS As String
    'Aktive Arbeitsmappe wird als mail gesendet
    AWS = ThisWorkbook.FullName
    'InitializeOutlook = True
    Set Nachricht = OutApp.CreateItem(0)
    With Nachricht
        .To = "irgendwer@provider"
        .Subject = "Testmeldung von Excel2000 " & Date & Time
        .attachments.Add AWS
        .Body = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
        'Hier wird die Mail nochmals angezeigt
        .Display
        'Hier wird die Mail gleich in den Postausgang gelegt
        'Mail.Send
    End With
    OutApp.Quit
    Set OutApp = Nothing
    Set N 
     Code eingefügt mit Syntaxhighlighter 1.16

Der Bereich mit "CreateObject("Outlook.Application") funktioniert evtl. unter O97 nicht, dann kannst du deinen Teil verwenden, aber der Mail-Aufbau ist gleich.

Gruss Rainer

Anzeige
Re: Mail versenden und Standardtext einfügen
01.01.2003 17:27:52
volker
Hallo Rainer!

Vielen Dank für Deinen Lösungsvorschlag. Funktioniert nur leider nicht in O97.
Ich brauche aber eine Lösung dafür (wegen der Kompabilitäten) :-((

Wo meinst Du genau, muß ich meine statt Deiner Version einfügen?

Ich bekomme im Block "With Nachricht" ständig Laufzeitfehler unter 097.

Dankbare Grüße

Volker

Anzeige
Re: Mail versenden und Standardtext einfügen
01.01.2003 20:13:39
Ramses
Hallo Volker,

versuche unter O97 mal diese Anweisung:

Dim Nachricht As Object, OutApp As Outlook.Application
Set OutApp = New Outlook.Application

Gruss Rainer

Re: Mail versenden und Standardtext einfügen
03.01.2003 16:51:10
volker
Hallo Ramses,
längere Makrobastelpause wegen Schnupfen, schniff, schniff.
Irgenwie funkioniert es immer noch nicht.
Scheint ein Versionsproblem zu sein.
Danke für Deine Bemühungen!

Volker

Anzeige
;

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

Infobox / Tutorial

E-Mail aus Excel versenden und Standardtext einfügen


Schritt-für-Schritt-Anleitung

Um eine E-Mail aus Excel zu versenden und dabei Standardtexte einzufügen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Aktiviere die Entwicklertools: Gehe zu Datei > Optionen > Menüband anpassen und aktiviere die Entwicklertools.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklicke auf VBAProject (deine Arbeitsmappe), wähle Einfügen und dann Modul.

  4. Kopiere den folgenden Code:

    Sub MailVersenden()
       Dim OutApp As Object
       Dim Nachricht As Object
       Dim Speichername As String
    
       Set OutApp = CreateObject("Outlook.Application")
       Set Nachricht = OutApp.CreateItem(0)
       Speichername = ThisWorkbook.FullName
    
       With Nachricht
           .To = "empfaenger@example.com"
           .Subject = "Betreff der E-Mail"
           .Body = "Hier ist der Standardtext der E-Mail." & vbCrLf & "Zusätzliche Informationen."
           .Attachments.Add Speichername
           .Display ' oder .Send, um die E-Mail direkt zu senden
       End With
    
       Set OutApp = Nothing
       Set Nachricht = Nothing
    End Sub
  5. Führe das Makro aus: Drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Laufzeitfehler bei CreateObject: Überprüfe, ob Outlook korrekt installiert ist und dass du die richtige Version verwendest. Bei älteren Versionen (z.B. O97) könnte es nötig sein, den Code anzupassen.

  • E-Mail wird nicht gesendet: Stelle sicher, dass du den richtigen E-Mail-Client (Outlook) verwendest. Achte darauf, dass die Outlook.Application in deinem VBA-Code richtig referenziert wird.


Alternative Methoden

Falls du eine einfachere Methode bevorzugst, kannst du auch den Dialog xlDialogSendMail verwenden, um E-Mails aus Excel zu versenden:

Sub SendMailDialog()
    Dim mailadresse As String
    Dim betreff As String
    Dim mailtext As String

    mailadresse = "empfaenger@example.com"
    betreff = "Betreff der E-Mail"
    mailtext = "Hier ist der Standardtext der E-Mail."

    Application.Dialogs(xlDialogSendMail).Show _
        arg1:=mailadresse, _
        arg2:=betreff ' Body-Text kann hier nicht direkt eingefügt werden
End Sub

Beachte, dass du mit dieser Methode den Body-Text nicht direkt definieren kannst.


Praktische Beispiele

  1. E-Mail mit Anhang versenden:

    Sub MailMitAnhang()
       Dim OutApp As Object
       Dim Nachricht As Object
       Dim Anhang As String
    
       Anhang = "C:\Pfad\zu\deiner\Datei.xlsx"
       Set OutApp = CreateObject("Outlook.Application")
       Set Nachricht = OutApp.CreateItem(0)
    
       With Nachricht
           .To = "empfaenger@example.com"
           .Subject = "Betreff der E-Mail"
           .Body = "Hier ist die E-Mail mit Anhang."
           .Attachments.Add Anhang
           .Send
       End With
    End Sub
  2. E-Mail mit vordefinierten Daten versenden:

    Sub VordefinierteMail()
       Dim Nachricht As Object
       Set Nachricht = CreateObject("Outlook.Application").CreateItem(0)
    
       With Nachricht
           .To = "empfaenger@example.com"
           .Subject = "Automatische E-Mail"
           .Body = "Hallo, dies ist eine automatische Nachricht."
           .Send
       End With
    End Sub

Tipps für Profis

  • Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung, um Laufzeitfehler zu vermeiden. Beispiel:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
       MsgBox "Fehler: " & Err.Description
       Err.Clear
    End If
  • Automatisierung: Du kannst das E-Mail-Versenden automatisieren, indem du das Makro in einer bestimmten Zeitspanne oder bei bestimmten Ereignissen (z.B. beim Schließen der Datei) ausführst.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Empfänger hinzufügen?
Du kannst mehrere E-Mail-Adressen durch ein Semikolon trennen:

.To = "empfaenger1@example.com; empfaenger2@example.com"

2. Was kann ich tun, wenn mein Makro nicht funktioniert?
Überprüfe die Sicherheits- und Datenschutzeinstellungen in Excel und Outlook. Stelle sicher, dass Makros aktiviert sind.

3. Wie kann ich den Body-Text formatieren?
Für einfache Formatierungen kannst du HTML verwenden, indem du .HTMLBody anstelle von .Body verwendest.

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