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

e-mail-Adresse aus Zelle verwenden (VBA)

Forumthread: e-mail-Adresse aus Zelle verwenden (VBA)

e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 14:56:26
CPFT
Hallo zusammen.
Kurze Frage:
Wie kann ich anstatt einer fest eingegeben email-Adresse in einem Makro eine Adresse aus einer Zelle auslesen?
Also: .to = "Zelle" statt .to = abc@xyz.de
Dank im Voraus für eure Hilfe.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 15:01:00
UweD
Hallo
Beispiel für Tabelle1, Zelle A1
'...
.to = Sheets("Tabelle1").Range("A1").Value
Gruß UweD
(Rückmeldung wäre schön)
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 15:31:19
CPFT
Erstmal Danke für die Mühe, aber:
Leider funktioniert´s so nicht.
Hier ist das Makro:

Sub BroadcastVersenden()
Dim Nachricht As Object, OutApp As Object
Dim SavePath As String
Dim AWS As String
Sheets("Broadcast").Select
SavePath = "D:\Broadcast"
Set OutApp = CreateObject("Outlook.Application")
ActiveSheet.Copy
ActiveWorkbook.SaveAs SavePath & "\" & ActiveSheet.Name & " " & ActiveSheet.Range("A2") & "_" & Format(Date, "mmmyy")
AWS = ActiveWorkbook.FullName
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.to = .Sheets("Broadcast").Range("A3").Value
.Subject = "Broadcast" & Format(Date, "yyyy-mm")
.Attachments.Add AWS
.body = "Sehr geehrte Damen und Herren," & Chr(13) & _
"" & Chr(13) & _
"anbei erhalten Sie unsere Planzahlen" & vbCrLf & "Mit freundlichen Grüßen" & Chr(13) & _
.Display
End With
Set OutApp = Nothing
Set Nachricht = Nothing
ActiveWindow.Close
Windows("Supplier Broadcast File.xls").Activate
Sheets("Broadcast").Select
End Sub

Kurze Erklärung: Es wird ein Tabellenblatt (Broadcast) als xls-Datei gespeichert und als Anhang in die kreierte Mail gesetzt.
Starte ich das Makro erhalte ich folgende Meldung: "Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht"
Anzeige
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 15:34:56
UweD
welche Zeile ist denn im Fehlerfall gelb unterlegt?
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 15:41:00
CPFT
.to = .Sheets("Broadcast").Range("A3").Value
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 15:52:28
UweD
Hallo
ok..
der Punkt vor dem Sheets( muß weg. (hatte ich auch NICHT mit angegeben)
Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: e-mail-Adresse aus Zelle verwenden (VBA)
28.02.2006 16:00:47
CPFT
Danke!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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-Adresse aus Zelle in Excel VBA verwenden


Schritt-für-Schritt-Anleitung

Um eine E-Mail-Adresse aus einer Zelle in Excel VBA auszulesen und als Empfänger zu verwenden, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „Modul“.

  3. Kopiere den folgenden Code: Füge den folgenden Code in das Modul ein:

    Sub BroadcastVersenden()
       Dim Nachricht As Object, OutApp As Object
       Dim SavePath As String
       Dim AWS As String
       Sheets("Broadcast").Select
       SavePath = "D:\Broadcast"
       Set OutApp = CreateObject("Outlook.Application")
       ActiveSheet.Copy
       ActiveWorkbook.SaveAs SavePath & "\" & ActiveSheet.Name & " " & ActiveSheet.Range("A2") & "_" & Format(Date, "mmmyy")
       AWS = ActiveWorkbook.FullName
       Set Nachricht = OutApp.CreateItem(0)
       With Nachricht
           .To = Sheets("Broadcast").Range("A3").Value ' Hier wird die E-Mail-Adresse aus der Zelle ausgelesen
           .Subject = "Broadcast" & Format(Date, "yyyy-mm")
           .Attachments.Add AWS
           .Body = "Sehr geehrte Damen und Herren," & vbCrLf & _
                    "anbei erhalten Sie unsere Planzahlen" & vbCrLf & _
                    "Mit freundlichen Grüßen"
           .Display
       End With
       Set OutApp = Nothing
       Set Nachricht = Nothing
       ActiveWindow.Close
       Windows("Supplier Broadcast File.xls").Activate
    End Sub
  4. Passe den Code an: Stelle sicher, dass der Verweis auf die Zelle, die die E-Mail-Adresse enthält, korrekt ist (in diesem Beispiel A3 auf dem Blatt „Broadcast“).

  5. Führe das Makro aus: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle BroadcastVersenden und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Laufzeitfehler '438': Dieser Fehler tritt auf, wenn du versuchst, eine Eigenschaft oder Methode eines Objekts zu verwenden, die nicht unterstützt wird. Stelle sicher, dass du den Punkt vor Sheets in der Zeile .To = Sheets("Broadcast").Range("A3").Value entfernst.

  • E-Mail-Adresse wird nicht gefunden: Vergewissere dich, dass die Zelle, die du ansprechen möchtest, tatsächlich eine gültige E-Mail-Adresse enthält und in der richtigen Tabelle ist.


Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch Excel-Formeln nutzen, um E-Mail-Adressen aus einer Liste zu extrahieren. Zum Beispiel kannst du die Funktion VERKETTEN oder TEXTKETTE verwenden, um E-Mail-Adressen zusammenzustellen.


Praktische Beispiele

Ein einfaches Beispiel zur Verwendung von Excel VBA, um E-Mail-Adressen aus Excel auszulesen:

Sub EmailVersenden()
    Dim OutApp As Object
    Set OutApp = CreateObject("Outlook.Application")
    Dim Nachricht As Object
    Set Nachricht = OutApp.CreateItem(0)

    ' Angenommene E-Mail-Adresse in Zelle A1
    Nachricht.To = Sheets("Tabelle1").Range("A1").Value
    Nachricht.Subject = "Test E-Mail"
    Nachricht.Body = "Dies ist eine Test-E-Mail."
    Nachricht.Display
End Sub

Tipps für Profis

  • Debugging: Nutze den Debugger von VBA, um Fehler zu finden, indem du Haltepunkte setzt und den Code Schritt für Schritt durchgehst.
  • E-Mail-Adressen validieren: Füge eine Validierung ein, um sicherzustellen, dass die E-Mail-Adresse in der Zelle das richtige Format hat, bevor du versuchst, sie zu verwenden.
  • Sicherheitseinstellungen: Achte darauf, dass die Sicherheitseinstellungen in Outlook das Versenden von E-Mails aus VBA nicht blockieren.

FAQ: Häufige Fragen

1. Wie kann ich mehrere E-Mail-Adressen aus einer Zelle verwenden?
Du kannst die E-Mail-Adressen durch ein Semikolon getrennt in einer Zelle speichern und dann in VBA den Wert aufteilen.

2. Was mache ich, wenn Outlook nicht geöffnet ist?
Das Makro wird versuchen, Outlook zu öffnen. Stelle sicher, dass Outlook korrekt installiert und konfiguriert ist, um E-Mails zu versenden.

3. Kann ich E-Mail-Adressen aus mehreren Zellen auslesen?
Ja, du kannst eine Schleife verwenden, um die E-Mail-Adressen aus mehreren Zellen zu lesen und sie dann in das .To-Feld einzufügen.

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