Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

E-Mail automatisch versenden

E-Mail automatisch versenden
25.03.2020 08:05:30
Tanja
Hallo zusammen,
ich habe eine Excel List und benötige jetzt ein VBA wie man ein automatisches E-Mail versendet.
Ich möchte gerne, wenn in "Tabelle 1" die Zelle mit dem Namen im Hintergrund grau oder rot aufscheint, dass die E-Mail Adresse der Person von Tabelle 3 verwendet wird.
Kann mir hier jemand bitte helfen?
Vielen Dank im Voraus!
Lg Tanja

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 08:38:23
Nepumuk
Hallo Tanja,
wodurch ändert sich die Hintergrundfarbe? In welchen Spalten findet das statt? Wie ist der Zusammenhang zwischen Namen und Mailadresse?
Gruß
Nepumuk
AW: E-Mail automatisch versenden
25.03.2020 08:56:25
Tanja
Hallo Nepumuk,
die Farbe ändert sich durch eine Formel, also das Makro sollte nach einer Farbe in Spalte D suchen und falls eine Farbe Vorhanden ist (egal ob rot oder grau) den Namen aus Spalte F verwenden, dieser in der selben Zeile steht und dadurch den selben Namen in Tabelle 3 suchen der in dem Fall in Spalte A steht und eine E-Mail Durch Outlook versenden diese in Spalte C steht. Allerdings soll ein PopUp der E-Mail kommen und diese sollte vor dem abschicken Bestätigt werden, um unnötige Testmails zu vermeiden.
Ich hoffe du kennst dich so ein bisschen besser aus!
Lg Tanja
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 09:35:07
Nepumuk
Hallo Tanja,
im Prinzip so (In das Modul der Tabelle. Dazu Rechtsklick auf den Tabellenreiter - Code anzeigen):
Option Explicit

Private Sub Worksheet_Calculate()
    Dim objColorCell As Range, objNameCell As Range
    Dim objOutlook As Object, objMail As Object
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    For Each objColorCell In Range(Cells(1, 4), Cells(Rows.Count, 4).End(xlUp))
        With objColorCell.DisplayFormat.Interior
            If .Color = RGB(255, 0, 0) Or .Color = RGB(166, 166, 166) Then
                Set objNameCell = Worksheets("Tabelle3").Columns(1).Find( _
                    What:=objColorCell.Offset(0, 2).Text, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
                If Not objNameCell Is Nothing Then
                    Set objMail = objOutlook.CreateItem(0)
                    With objMail
                        .To = objNameCell.Offset(0, 2).Text
                        .Body = "Hallo" & vbLf & vbLf & "Mailtext" & vbLf & vbLf & "Gruß Tanja"
                        Call .Display
                    End With
                    Set objMail = Nothing
                    Set objNameCell = Nothing
                Else
                    Call MsgBox("Name: " & objColorCell.Offset(0, 2).Text & _
                        " nicht gefunden.", vbExclamation, "Hinweis")
                End If
            End If
        End With
    Next
    Set objOutlook = Nothing
End Sub

ABER, das Makro wird bei jeder Berechnung einer Formel in der Tabelle ausgelöst. Besser wäre es bei der Eingebe eines Wertes der die Färbung hervorruft. Also, wo gibst du was ein um die Färbung auszulösen?
Gruß
Nepumuk
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 10:57:15
Tanja
Hallo Nepumuk,
meine Excel-Datei ist ausschließlich als Vorlage für jegliche Tabellen die ich in Zukunft erstellen möchte, mein Makro soll also nach einer Farbe suchen in "Tabelle1" und falls eine Vorhanden ist eine E-Mail versende durch de Auskunft des Namens der in der Spalte daneben steht. Die Mailadresse findet man in der "Tabelle3" jedoch sollte die E-Mail vorher bearbeitbar sein, also sie sollte wie angegeben noch nicht abgeschickt werden. Dieses Makro, dass ich erstellen will sollte also so sein dass man es beliebig bearbeiten kann und je nach Datei wo ich sie einfüge umwandelbar sein. Kannst du mir vielleicht eine Vorlage machen wo diese Angaben passen würden, aber da ich mich auch noch nicht so gut auskenne mit Makros gekennzeichnet ist welche Phrasen wandelbar sind mit Zeile, Spalte etc.?
Würd mich echt freuen, wenn du so ein Makro hin bekommst!
Lg Tanja
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 11:03:04
Nepumuk
Hallo Tanja,
im Prinzip macht mein Makro das schon. Lade doch mal eine Mustermappe hoch damit ich das verifizieren kann. Dann schreib ich dir Kommentare zu jeder Zeile damit du das selber anpassen kannst.
Gruß
Nepumuk
AW: E-Mail automatisch versenden
25.03.2020 12:37:51
Tanja
Hallo Nepumuk,
anbei habe findest du die Mustermappe, hoffe du kannst mit dem etwas anfangen. Habe das Makro, dass du mir gesendet hast allerdings noch nicht hinzugefügt, da mir noch unklar ist wie ich es am besten umforme, dass es zu dieser Datei passt.
https://www.herber.de/bbs/user/136093.xlsm
Lg Tanja
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 14:29:39
Nepumuk
Hallo Tanja,
leider hast du nicht geschrieben in welcher Zelle / Spalte die Eingabe erfolgt und die entsprechende Zelle in Spalte C zu färben. Daher ins Blaue:
Option Explicit

Private Sub Worksheet_Calculate()
    Dim objCell As Range, objNameCell As Range
    Dim objOutlook As Object, objMail As Object
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    For Each objCell In Range(Cells(2, 4), Cells(Rows.Count, 4).End(xlUp))
        With objCell.Offset(0, -1).DisplayFormat.Interior
            If .Color = RGB(255, 0, 0) Or .Color = RGB(231, 230, 230) Then
                Set objNameCell = Worksheets("Einkäufer").Columns(1).Find( _
                    What:=objCell.Text, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
                If Not objNameCell Is Nothing Then
                    Set objMail = objOutlook.CreateItem(0)
                    With objMail
                        .To = objNameCell.Offset(0, 2).Text
                        .Subject = "Betreff"
                        .Body = "Hallo" & vbLf & vbLf & "Mailtext" & vbLf & vbLf & "Gruß Tanja"
                        Call .Display
                    End With
                    Set objMail = Nothing
                    Set objNameCell = Nothing
                Else
                    Call MsgBox("Name: " & objCell.Offset(0, 2).Text & _
                        " nicht gefunden.", vbExclamation, "Hinweis")
                End If
            End If
        End With
    Next
    Set objOutlook = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: E-Mail automatisch versenden
25.03.2020 15:21:22
Tanja
Hallo Nepumuk,
herzlichen Dank!
Du hast mir sehr weiter geholfen, das angegebene Makro funktioniert super.
Lg Tanja

83 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige