Hallo Andrea,
vielen Dank, das ist genau das was ich brauch
für so Fälle darfste besternen ))
Die werden durch ; getrennt.
Falls es allerdings einfacher ist, wäre auch E, F, etc
möglich.
Ist prinzipiell egal, ich muß nur wissen wie und wo sie stehen, im Code habe ich als Trennungszeichen das „;“ genommen.
Wenn man 500.000 Dateien per Vba ausliest ist es ja ganz nett wenn unten in der Statusbar angezeigt wird „Bin bei datei 213.567 / 500.000“, daran kann man dann quasi sehen ob der Code noch läuft.
Aber bei kleinen mengen wie Emaildaten an Outlook zu schicken, lohnt sich das meist nicht.
Wenn du das nicht brauchst, so werfe alle Zeilen raus wo Statusbar in der Codezeile vorkommt.
Sub Verteilen()
Dim oOL As Object
Dim oOLMsg As Object
Dim oOLRecip As Object
Dim oOLAttach As Object
Dim iRow As Integer, iCounter As Integer
Dim sFile, sRec As String, sSub As String
Dim sBody As String
Dim bln, S
Application.ScreenUpdating = False
Application.DisplayStatusBar = True
bln = Application.DisplayStatusBar
iRow = Cells(Rows.Count, 1).End(xlUp).Row
Set oOL = CreateObject("Outlook.Application")
For iCounter = 2 To iRow
sRec = Cells(iCounter, 1) 'Empfänger
sFile = Split(Cells(iCounter, 4), ";") 'Anlage
sSub = Cells(iCounter, 2) 'Betreff
sBody = Cells(iCounter, 3) 'Text
Application.StatusBar = "Sende Datei " & sFile(0) & " an " & sRec & "..."
Set oOLMsg = oOL.CreateItem(0)
With oOLMsg
Set oOLRecip = .Recipients.Add(sRec)
.Subject = sSub
.Body = sBody & vbLf & vbLf
For S = 0 To UBound(sFile)
.Attachments.Add sFile(S)
Next S
'.display
.Send
End With
oOLRecip.Resolve
Next iCounter
Set oOL = Nothing
Application.StatusBar = False
Application.DisplayStatusBar = bln
End Sub
Gruß
Reinhard