Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1412to1416
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

VBA Autom. E-Mail mit unterschiedlichen Zellinhalt

VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 14:31:27
Christian
Hallo,
ich bekomme die folgenden Programmierung einfach nicht gebacken.
Es wäre super wenn mir jemand helfen kann.
Fall:
Ich möchte eine Email versenden die sich zuerst auf eine Zelle mit Formel bezieht (Ok/Falsch) und dann versch. Zellinhalte in versch. Spalten in eine Email packt, die dann nach Durchführung des Makros aufpoppen und nicht autm. verschickt werden soll, zwecks Prüfung.
Spalten:
A = Email Adresse
B = Formel (Ok/Falsch)
J = Betreff
P33 = Text
Vielen Dank im Voraus.
Ps.: Hier ist meine bisherige Programmierung, die leider nur die Formel abgreift jedoch nicht die Informationen aus der jeweilgen Zeile in die Email packt.
Sub AUTOMATISIERTE_EMAIL()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
sAdress = Range("a1").Value
sSubject = Range("J1")
sBody = Range("p33").Value
Dim IntZeile As Integer
For IntZeile = 1 To 8
If Cells(IntZeile, 2) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress 'Empfänger"
.Subject = sSubject 'Betreff
.Body = sBody 'Nachricht
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 14:52:56
Klexy
Funktioniert doch einwandfrei.

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 15:01:43
Christian
Ja, aber nur für die erste Zeile.
Also er prüft die Formel aus Spalte B komplett ab, zieht mir die Email Adresse und Betreff jedoch nur aus der ersten Zeile.

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 15:14:12
Klexy
Klar, nur die erste Zeile. Du hast ja die Variablen ganz unvariabel nur auf die erste Zeile festgelegt:
sAdress = Range("a1").Value
sSubject = Range("J1")
sBody = Range("p33").Value
So wird eine Serienmail draus:
Adresse, Proffeld und Betreff wandern über die ersten 8 Zeilen nach unten, der Body-Text bleibt mimer gleich auf P33. Die Änderungen zu deinem Makro sind fett.
Sub AUTOMATISIERTE_EMAIL()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Set sAdress = Range("a1") ' hier kein Value
Set sSubject = Range("J1")
sBody = Range("p33").Value
Dim IntZeile As Integer
For IntZeile = 1 To 8
If Cells(IntZeile, 2) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = sSubject.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Nachricht
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 16:01:56
Christian
Mein lieber Freund Klexy, das ist ja der Wahnsinn!
Und ich hock da ewig dran und es liegt an diesem blöden value, habe ich gar nicht drauf geachtet.
Dankeschön, funktioniert einwandfrei!
Grüße

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
04.03.2015 16:12:07
Klexy
War mir eine Freude.
Aber es lag weniger am Value, vielmehr am fehlenden Offset weiter unten.
A few weeks of developing and testing can save a whole afternoon in the library.

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 10:12:28
Christian
Ich habe jetzt noch eine zusätzliche Frage:
Wenn ich nun nicht nur "J1" in meiner Betreffzeile habe möchte, sondern auch noch bspw. "M1", wie funktioniert das?
Zusätzlich zu dieser Frage: Wäre es möglich in die Betreffzeile vor den Wert aus "M1" den Text "endet am" zu integrieren?
Bisheriger Code:
Sub AUTOMATISIERTE_EMAIL()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Set sAdress = Range("D4")
Set sSubject = Range("A4, M4")
sBody = Range("T1").Value
Dim IntZeile As Integer
For IntZeile = 4 To 1000
If Cells(IntZeile, 11) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = sSubject.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Nachricht
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

>Vielen Dank für Eure Vorschläge!

Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 10:53:35
Klexy
Set sSubject = Range("A4, M4") geht nicht
So geht es:
Set sSubject1 = Range("A4")
Set sSubject2 = Range("M4")
und weiter unten dann
.Subject = sSubject1.Offset(IntZeile - 1, 0).Value & " endet am: " & sSubject2.Offset(IntZeile - 1, 0).Value

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 11:02:33
Christian
Du bist genial! Wirklich mega vielen Dank!!!

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 11:37:35
Christian
Noch eine kurze Frage :)
Ich habe in manchen Zellen (nicht alle) mehrere Email-Adressen. Gibt es eine Funktion, die alle Email-Adressen nimmt, die in der Zelle angegeben sind?Manchmal eine, manchmal 2 oder mehrere...
DANKE!

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 14:14:56
Klexy
Wenn du mehrere hast, funktioniert es auch, sie müssen aber durch Semikolon und Leerzeichen voneinander getrennt sein.
Folgende Zeile solltest du aber noch ändern, damit es auch funktioniert, wenn du "ok" oder "Ok" schreibst:
If UCase(Cells(IntZeile, 2)) = "OK" Then
Bisher ging es nur mit großem "OK". Das führt früher oder später zu falschen Ergebnissen.

Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 14:31:01
Christian
Er nimmt trotzdem nur eine email, auch wenn ich es so in die Zelle schreibe:
xyz@bla.de; xyz@bla1.de
Code sieht nun so aus:
Sub AUTOMATISIERTE_EMAIL()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Set sAdress = Range("D4")
Set sSubject1 = Range("A4")
Set sSubject2 = Range("M4")
sBody = Range("T1").Value
Dim IntZeile As Integer
For IntZeile = 4 To 1000
If UCase(Cells(IntZeile, 11)) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = " Die Opportunity " & sSubject1.Offset(IntZeile - 1, 0).Value & " endet am: " &  _
sSubject2.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Nachricht
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 14:45:04
Klexy
Da bin ich ratlos. Bei mir funktioniert es. Er übernimmt doch die Zeichenkette, die in der Zelle drin steht, egal, ob da "Kartoffelsalat" drinsteht oder ein Schiller-Sonett.
Mach besser dafür einen neuen Thread auf.

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 16:00:03
Christian
Hi, ich bins nochmal. Jetzt funktioniert der Code nicht mehr :( Ich werde verrückt.
Der Aktuelle Code:
Sub AUTOMATISIERTE_EMAIL()
Dim olApp As Object
Dim WsShell
Set olApp = CreateObject("Outlook.Application")
Set sAdress = Range("D4")
Set sSubject1 = Range("A4")
Set sSubject2 = Range("M4")
sBody = Range("U1").Value
Dim IntZeile As Integer
For IntZeile = 4 To 5000
If Cells(IntZeile, 11) = "OK" Then
With olApp.CreateItem(0)
.To = sAdress.Offset(IntZeile - 1, 0).Value 'Empfänger"
.Subject = " Die Opportunity " & sSubject1.Offset(IntZeile - 1, 0).Value & " endet am: " &  _
sSubject2.Offset(IntZeile - 1, 0).Value 'Betreff
.Body = sBody 'Nachricht
.ReadReceiptRequested = False 'Lesebestätigung aus
.Display 'Email anzeigen
End With
End If
Next
End Sub

Der Code soll ab Zeile 4 beginnen, da in der Zeile erst die Daten abgefragt werden sollen. Wenn ich den Code aber so laufen lasse, nimmt er nicht die Daten, die in der Zeile mit dem "OK" stehen, sondern immer 3 Zeilen untendran.
Bsp:
"OK" steht in Zeile "K11". Nun nimmt er die Daten nicht aus "A11" und "M11", sondern aus "A14" und "M14"...
Wieso? :(
Danke und Grüße!

Anzeige
AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 16:08:43
Christian
Habe hier: .Subject = " Die Opportunity " & sSubject1.Offset(IntZeile - 1, 0).Value & " endet am: " & _
sSubject2.Offset(IntZeile - 1, 0).Value 'Betreff
Habe dort anstatt -1 eine -4 eingegeben. Jetzt funktioniert es!

AW: VBA Autom. E-Mail mit unterschiedlichen Zellinhalt
05.03.2015 18:26:30
Klexy
Klar, du hast ja die Spalten verschoben. Die Spalten werden mit dem Offset immer relativ zum Ausgangsort verschoben. Wenn der Ausgangsort vier nach rechts geht, ist der Zielort im Verhältnis vier nach links gerückt.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige