Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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

Mail.attachments.Add .SelectedItems - mehrere Anh.

Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:27:28
Chris
Hallo!
Habe folgenden Code:

Private Sub GQ33()
'PDF-Erstellung
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ActiveWorkbook.path & "\" & Range("C5") & ".pdf", _
OpenAfterPublish:=False, From:=2, To:=4
'Mailversand
Dim outl As Object
Dim Mail As Object
Dim strDatei As String
strDatei = ActiveWorkbook.path & "\" & Range("C5") & ".pdf"
Set outl = CreateObject("Outlook.Application")
Set Mail = outl.CreateItem(0)
Mail.Subject = "xyz"
'Mailinhalt
Mail.htmlBody = "blabla"
Mail.To = "123@xyz.de"
MsgBox ("Bitte Datei auswählen.")
    Set fdOpen = Application.FileDialog(msoFileDialogOpen)
With fdOpen
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.path
.Title = "Bitte die zu sendende(n) Datei(en) auswählen!"
.ButtonName = "per E-Mail senden"
If .Show = True Then
'Dim vItem As Variant
'For Each vItem In .SelectedItems
Mail.attachments.Add .SelectedItems(1)
'Next
End If
End With
Mail.attachments.Add strDatei
Mail.Display
End Sub

Habe ich mir übrigens alles selber größenteils hier auf der Seite zusammengesucht ;) Schonmal ein riesen Dankeschön dafür :)
Problem ist jetzt:
Wenn ich im ÖffnenDialog mehrere Dateien auswähle, sagen wir 3 Stück, öffnet er 3x die erste ausgewählte Datei (ich denke das liegt an .SelectedItems(1))...
Ich möchte aber flexibel 1, 2 oder 3 Dateien anhängen.
Habe es folgendermaßen geschafft, mehrere Dateien anzuhängen, aber dann MUSS man auch (in _
diesem Beispiel) 4 Stück anhängen, sonst kommt ein Fehler:

Mail.attachments.Add .SelectedItems(1)
Mail.attachments.Add .SelectedItems(2)
Mail.attachments.Add .SelectedItems(3)
Mail.attachments.Add .SelectedItems(4)
Das was im Code oben auskommentiert ist

'Dim vItem As Variant
'For Each vItem In .SelectedItems
Mail.attachments.Add .SelectedItems(1)
'Next
habe ich auch aufgeschnappt - bewirkt aber nichts.
Ich frage mich die ganze Zeit, ob man den Wert in der Klammer wirklich absolut bestimmen muss?! _
Habe mehrere Platzhalter probiert und die Klammer ganz weggelassen - kommen immer Fehler.

Mail.attachments.Add .SelectedItems(*)
Mail.attachments.Add .SelectedItems(%)
Mail.attachments.Add .SelectedItems("")
Mail.attachments.Add .SelectedItems
Kann mir jemand auf die Sprünge helfen?
Habe bereits 600 Zeilen für dieses Projekt gescriptet und kam über kurz über lang immer selbst zu einer Lösung, aber hier seh ich nach ein paar Stunden langsam Schwarz -.- Google spuckt auch nix hilfreiches aus :(
Ich will einfach, dass er ALLE Dateien, die ich im Open-Dialog auswählen auch so öffnet/anhängt.
Danke vielmals!!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:43:15
Kawensmann
Hallo,
versuch's mal so:
Dim i As Integer
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems
Mail.attachments.Add .SelectedItems(i)
Next
Mail.attachments.Add .SelectedItems(1)
End If
Gruß
Kawensmann

AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:45:18
Kawensmann
Da ist natürlich eine Zeile zu viel ...
Bitte

Mail.attachments.Add .SelectedItems(1)
streichen ...

AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:50:09
Chris
Hi,
Danke.
Habe das nun folgendermaßen eingebaut:
Set fdOpen = Application.FileDialog(msoFileDialogOpen)
With fdOpen
.AllowMultiSelect = True
.InitialView = msoFileDialogViewList
.InitialFileName = ActiveWorkbook.path
.Title = "Bitte die zu sendende(n) Datei(en) auswählen!"
.ButtonName = "per E-Mail senden"
If .Show = True Then
Dim i As Integer
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems
Mail.attachments.Add .SelectedItems(i)
Next
Mail.attachments.Add .SelectedItems(1)
End If
End If
End With

Es kommt aber eine Fehlermeldung
Laufzeitfehler '450':
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft
Beim Debuggen wird

For i = 1 To .SelectedItems
als Fehlerquelle gehighlighted.
Kann deinen Code leider nicht nachvollziehen und daher auch keine Schlüsse aus der Fehlermeldung ziehen :(
Aber vielleicht habe ich den Code auch einfach falsch eingebaut?!

Anzeige
AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:51:39
Kawensmann
war zu schenll ...
For i = 1 To .SelectedItems.Count
und

Mail.attachments.Add .SelectedItems(1)
weglassen

AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 11:13:40
Chris
Oh ja - sehr fein :)
Funktioniert tadellos!!!
Vielen Dank!

AW: Mail.attachments.Add .SelectedItems - mehrere Anh.
24.07.2013 10:44:47
mumpel
Hallo!
Du müsstest die ausgewählten Dateinamen in ein Array schreiben und dann dieses Array abarbeiten.
Gruß, René

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige