Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1732to1736
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 anstoßen via VBA

E-Mail automatisch anstoßen via VBA
05.01.2020 22:04:09
Daniel
Hallo,
und schon wieder stehe ich mit Excel im Krieg.
Der unten stehende Code ist FAST so wie ich ihn benötige, ABER nur fast.
In der Spalte O3:O45 stehen Werte basierend auf meiner Datumsberechnung.
Jetzt soll ab den Wert 14 bis -200 gesucht werden und aus Spalte E3:E45 die entsprechenden Werte/Daten in die E-Mail gezogen werden. Dieses funzt nicht richtig.
Der Automatische Versand klappt ja, nur die Auflistung aus E3:E45 stimmt nicht.
Könnte mir bitte jemand unter die Arme helfen.
LG Daniel
Option Explicit
Sub StartMail()
Dim strTo As String, strSUBJECT As String, strText As String, _
strCC As String, strBCC As String, strAtt As String, _
strEquipment As String
strEquipment = EquipmentListe
strTo = "blabla@bla.de" 'mehrere mit ; trennen
strSUBJECT = "Equipment Liste"
strText = "ACHTUNG Equipment " & vbCrLf & vbCrLf & _
strEquipment & vbCrLf & vbCrLf & _
"DATUM l?uft bald ab."
SendMail_Outlook strTo, strSUBJECT, strText, strCC, strBCC, strAtt
End Sub
Sub SendMail_Outlook(strTo As String, strSUBJECT As String, strText As String, _
strCC As String, strBCC As String, strAtt As String)
Dim MyMessage As Object, MyOutApp As Object, i As Integer
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = strTo
.CC = strCC
.BCC = strBCC
.Subject = strSUBJECT
For i = 0 To UBound(Split(strAtt, ";"))
.Attachments.Add Trim(Split(strAtt, ";")(i))
Next
.Body = strText
'.Send
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub
Function EquipmentListe() As String
Dim rngC As Range
With Sheets("Komponentenfertigung")
For Each rngC In .Range(.Cells(3, 14), .Cells(45, 14))
If rngC 


		

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail automatisch anstoßen via VBA
05.01.2020 22:08:42
onur
Versuch das:
For Each rngC In .Range(.Cells(3, 14), .Cells(45, 14)).Cells.
Schon mal von "strukturierter Programmierung" gehört?
AW: E-Mail automatisch anstoßen via VBA
06.01.2020 11:29:41
Daniel
Guten Morgen ONUR,
danke für die schnelle Antwort, funzt leider nicht, da dort scheinbar nicht der Fehler liegt.
Strukturierte Programmierung: nur bedingt, da ich gerne zur Fehlersuche alles separat habe.
Ich weiß der Fehler liegt in der Funktion Equipmentliste, aber wo genau.
Function EquipmentListe() As String
Dim rngC As Range
With Sheets("Komponentenfertigung")
For Each rngC In .Range(.Cells(3, 14), .Cells(45, 14))
If rngC 
LG Daniel
Anzeige
AW: E-Mail automatisch anstoßen via VBA
06.01.2020 11:42:26
onur
"da ich gerne zur Fehlersuche alles separat habe" - offensichtlich weisst du nicht wirklich, was "strukturierte Programmierung" ist. So sieht es aus, wenn ...
Function EquipmentListe() As String
Dim rngC As Range
With Sheets("Komponentenfertigung")
For Each rngC In .Range(.Cells(3, 14), .Cells(45, 14))
If rngC 

So siehst du sofort, was innerhalb welcher Schleife liegt, ohne all die End Ifs, Nexts, End Withs usw abzählen zu müssen. DAS erleichtert die Fehlersuche.
Sorry, aber mehr kann ich nicht sagen, ohne die Datei vor mir zu haben.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige