Hallo,
Ich hoffe das mir jemand hier helfen kann.
Ich hab eine excel tabelle wo ich ein knopf erstellt habe der mir aus dieser tabelle eine Email für Outlook macht, soweit funktioniert mein vba script gut nur leider habe ich das problem mit attachments
Mail.Attachments.Add "C:\Dokumente und Einstellungen\.....\12. Dezember\Bericht\_01.12.09.pdf"
mein problem ist das die datei: jeden abend ein anderes Datum in dem namen ist, und ich würde gerne das er automatisch die datei anghängt die vom heuteigen
Ich habe zur prüfung vom tag diese Formel:
=WENN(HEUTE()\>(JETZT()-0,2);(HEUTE()-1);HEUTE())
genau sowas müsste halt in das vba script damit er die richtige datei nimmt.
Ich hoffe man versteht was ich suche.
mit freundlichen Grüßen
Leo
Salve
wenn Deine Tagesformel in C2 steht, schreibe diesen Wert in
eine Variable und setze dann den Dateipfad zusammen:
Zellwert in s einlesen:
s = Range(„C2“).Value
Festverdrahtung mit Datum als Dateinamen in 2. Variable lesen:
Dname = „C:\Dokumente und Einstellungen…\Bericht_“ & s & „.pdf“
zum schluß:
Mail.Attachments.Add Dname
MfG
Vielen dank das hat super geklappt 
Meine letzte frage, wie kann ich da noch ne überprüfung haben wenn es die dateien nicht gibt soll er einfach keine hinzufühgen, weil manchmal gibt es 3 und manchmal nur 2 dateien.
weil die dritte datei ist nicht immer da, zwei sind es immer. und wenn ich nur zwei rein stell dann klappt es wenn ich aber die dritte rein stell dann sagt er mir im fall das es keine dritte datei gibt das er sie nicht findet. er soll dann in dem fall einfach nur die 2dateien schicken und die dritte weg lassen wenn es die nicht gibt.
wäre cool wenn du mir da noch helfen kannst.
Mfg
Leo
Bedingung für Anhang
Hi
Beispiel für Dein Problem
If Len(s) > 0 Then Mail.Attachments.Add Dname
falls keine Zeichen in s passiert gar nichts
falls mind 1 Zeichen dann Dname als mailanhang
MfG
1 „Gefällt mir“
ja das problem ist nicht das es s nicht gibt sondern das es die datei nicht gibt. weil s hat immer mehr als 1 zeichen, da es das datum von Heute ist…
ja das problem ist nicht das es s nicht gibt sondern das es
die datei nicht gibt. weil s hat immer mehr als 1 zeichen, da
es das datum von Heute ist…
Hallo Dark,
If Len(s) > 1 0 Then Mail.Attachments.Add Dname
Gruß
Reinhard
1 „Gefällt mir“
ja das problem ist nicht das es s nicht gibt sondern das es
die datei nicht gibt. weil s hat immer mehr als 1 zeichen, da
es das datum von Heute ist…
Dann nimmst Du nicht s sondern Dname oder versuchst es so:
If Dir(Dname) „“ Then Mail.Attachments.Add Dname
mfg
1 „Gefällt mir“
Guten Tag,
Hab es probiert leider kommt dann trozdem die fehler meldung
„Outlook kann diese Datei nicht finden. Bitte überprüfen Sie, ob Pfad und Dateinamen richtig angegeben wurden.“
Und wenn ich dann auf Debuggen drück dann zeigt er mir das er die Datein nicht finden kann die es noch nicht gibt.
also genau die wo eigentlich der befehlt anspringen sollte den du mir gesagt hast.
Also es müsste so ein befehlt sein;
If Datei(Dname) Then Mail.Attachments.Add Dname
das heisst wenn es die datei gibt soll er sie attachen ansonsten soll er den befehl ignorieren.
vielen dank schonmal für die viele hilfe.
mfg
Leo
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Bei deinem befehlt, kommt nie eine datei raus. er soll nicht den pfard testen sondern, testen ob es die Datei überhaupt gibt.
also ob es Dname überhaupt gibt. wenn es sie nicht gibt soll er sie überspringen.
danke auch dir schonmal für die Hilfe 
Hallo Leo,
If Dir(Dname) „“ Then Mail.Attachments.Add Dname
Hab es probiert leider kommt dann trozdem die fehler meldung
kann ich gar nicht glauben.
Und wenn ich dann auf Debuggen drück dann zeigt er mir das er
die Datein nicht finden kann die es noch nicht gibt.
Wie zeigt dir der Debugger das?
Zeige mal den relevanten Code, FAQ:2606
Gruß
Reinhard
1 „Gefällt mir“
er zeigt mir das in dem er es Gelbmakiert da wo der fehler ist und vorher sagt das der pfard nicht existiert… wenn er existiert dann klappt alles nur wenn er nicht existiert dann zeigt er die fehler meldung an und dann wenn ich debuggen drück springt er ins vba um und makiert die zeile gelb wo er probleme hat dadurch weiss ich wo der fehler ist…
leider hab ich den code nicht hier, ich zeig ihn morgen nochmal…
mfg
Leo
er zeigt mir das in dem er es Gelbmakiert da wo der fehler ist
und vorher sagt das der pfard nicht existiert… wenn er
existiert dann klappt alles nur wenn er nicht existiert dann
zeigt er die fehler meldung an und dann wenn ich debuggen
drück springt er ins vba um und makiert die zeile gelb wo er
probleme hat dadurch weiss ich wo der fehler ist…
Hallo Leo,
If Dir(Dname) „“ Then Mail.Attachments.Add Dname
okay, die ganze Zeit hat mich deine Fehlermeldung irritiert.
Es liegt an deiner Variablen Dname.
Setz mal vor die obige Codezeile ein
Dir (Dname)
da müßte der Fehler schon auftreten.
So wie hier wo ich den Fehler nachgestellt habe:
Sub tt()
Dim Dname As Worksheet
MsgBox Dir(Dname)
End Sub
Gruß
Reinhard
1 „Gefällt mir“
Hmm ich hab leider nicht ganz verstanden wo ich das Dir (Dname) hin packen soll darum noch ein mal den kompletten code.
Sub E_Mail_senden()
Quelle = ActiveWorkbook.ActiveSheet.Name
Dim outl, Mail As Object
Set outl = CreateObject(„Outlook.Application“)
Set Mail = outl.CreateItem(0)
s = Sheets(„Email Adressen“).Range(„E1“).Value
d = Sheets(„Email Adressen“).Range(„G1“).Value
f = Sheets(„Email Adressen“).Range(„F1“).Value
Dname = „C:“ & f & „“ & d & „\Bericht1_“ & s & „.pdf“
Fname = „C:“ & f & „“ & d & „\Bericht2_“ & s & „.pdf“
Hname = „C:“ & f & „“ & d & „\Bericht3_“ & s & „.pdf“
Gname = „C:“ & f & „“ & d & „\Bericht_HP_“ & s & „.pdf“
Mail.Subject = Sheets(„Email Adressen“).Range(„A1“)
Mail.body = text text text
Mail.To = Sheets(„Email Adressen“).Range(„C6“)
If Len(s) „“ Then Mail.Attachments.Add Dname
If Len(s) „“ Then Mail.Attachments.Add Fname
If Len(s) „“ Then Mail.Attachments.Add Gname
If Len(s) „“ Then Mail.Attachments.Add Hname
Mail.Display
Set Mail = Nothing
Set outl = Nothing
Set WshShell = Nothing
End Sub
zu dem problem: er soll 4 dateien anhängen das klappt auch so wie es soll nur leider klappt es nicht wenn eines der dateien fehlt weil ich an diesem tag halt nur 3 dateien erstellt haben denn die 4te war für den tag überflüssig.
Hallo Dark,
Hmm ich hab leider nicht ganz verstanden wo ich das Dir
(Dname) hin packen soll darum noch ein mal den kompletten
code.
eine Zeile über den If-Abfragen.
If Len(s) „“ Then Mail.Attachments.Add Dname
Was soll das, If Len(s) „“ Then Mail.Attachments.Add Dname
If Dir( F name) „“ Then Mail.Attachments.Add F name
If Dir( G name) „“ Then Mail.Attachments.Add G name
If Dir( H name) „“ Then Mail.Attachments.Add H name
Was genau steht denn in s, d, f?
Gruß
Reinhard
1 „Gefällt mir“
Ok, ich weiss nicht wieso aber jetzt klappt es. vielleicht hab ich es vorher irgendwie flasch eingegeben aber jetzt klappt alles so wie es soll 
VIELEN LIEBEN DANK
ihr seid genial danke
zu deiner frage:
s = Datum von heute zb. 16.12.2009
f = das heute Jahr tb. 2009
g = der heutige Monat zb. 12. Dezember oder 5. Mai usw.
f und g sind die Ordner wo die dateien drin sind. und s ist das datum im namen der Datei.
mfg
Leo