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.
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
Um eine E-Mail-Adresse aus einer Zelle in Excel VBA auszulesen und als Empfänger zu verwenden, kannst du folgende Schritte befolgen:
Öffne den VBA-Editor: Drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „Modul“.
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
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“).
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“.
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.
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.
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
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen