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

Prüfen, ob Datei existiert (Erweiterung)

Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 21:15:31
Sergej
Hallo Leute,
mit dem Makro (s. unten) prüfe ich in der Spalte D, ob der Datei existiert. Die Einträge in der Spalte D bilden vollständigen Pfad incl. Dateiname. Bsp. M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\202008 Planungsgrundlage.xlsx
Soweit alles in Ordnung. Wenn die Datei gesuchte Datei im Verzeichnis nicht gefunden wird, dann soll im gleichem Verzeichnis nach *Planungsgrundlage*.xls* gesucht werden. Wenn eine Datei gefunden wird, dann soll der Name der Datei in Spalte E eingetragen werden. Wie ergänze ich das bitte im Code?
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
msg = msg & Mid(.Value, InStrRev(.Value, "\") + 1) & vbLf
.Interior.ColorIndex = 22
End If
End If
End With
Next z
End Sub
Beste Grüße,
Sergej

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 21:47:12
onur
Sollte funktionieren:
If Dir(.Value) = "" Then
Else If Dir(replace(.Value,".xlsx","*.xls*") = "" Then
' Hier dein Code
z.offset(1,0)=Dir(replace(.Value,".xlsx","*.xls*")
end if

AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 22:11:23
Sergej
Hallo Onur,
ich habe es getestet und es funktioniert nicht wie erwartet. ;-)
Beispiel: In der Zelle D10 steht dies
M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\202008 Planungsgrundlage.xlsx
Die Datei existiert tatsächlich nicht und wird entsprechend als Zelle eingefärbt. Soweit in Ordnung. Im Verzeichnis liegt aber eine Datei "Neu Planungsgrundlage Muster.xlsx".
Diese sollte dann in Spalte E als Dateiname eingetragen werden, weil das Wort "Planungsgrundlage" in Dateinamen vorkommt.
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
ElseIf Dir(Replace(.Value, ".xlsx", "*.xls*")) = "" Then
z.Offset(1, 0) = Dir(Replace(.Value, ".xlsx", "*.xls*"))
End If
End If
End With
Next z
End Sub
Beste Grüße,
Sergej
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 22:13:14
onur
Zitat: "Wenn die Datei gesuchte Datei im Verzeichnis NICHT gefunden wird, dann soll....."
AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 23:30:23
Sergej
Hallo Onur,
sorry, aber ich verstehe deine Antwort nicht. Ich denke, in meinem ersten Beitrag die Frage verständlich gestellt zu haben.
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 23:37:21
onur
Hast Recht ! Sorry ! Hast du denn das 2. Makro genommen?
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 23:23:09
Sergej
Hallo Onur,
vielen Dank für deine Mühe. Ich habe es jetzt hinbekommen:
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
Dateiname = Dir(Left(.Value, InStrRev(.Value, "\")) & "*" & "Planungsgrundlage"  _
& "*.xls")
.Offset(0, 1) = Dateiname
End If
End If
End With
Next z
End Sub
Beste Grüße,
Sergej
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 23:24:44
onur
Und warum hast du den Code wieder verändert?
AW: Prüfen, ob Datei existiert (Erweiterung)
10.01.2021 22:09:27
onur
Besser so:
dim x
If Dir(.Value) = "" Then
Else
x=replace(.Value,".xlsx","*.xls*"
If Dir(x) = "" Then
'Hier dein Code
z.offset(1,0)=x
end if
end if

AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 00:04:51
Sergej
Hallo Onur,
wie folgt ohne Erfolg getestet:
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Dim x
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
Else
x = Replace(.Value, ".xlsx", "*.xls*")
If Dir(x) = "" Then
z.Offset(1, 0) = x
End If
End If
End If
End With
Next z
End Sub
Meiner Meinung nach, wird der Code wegen Else nicht weiter ausgeführt, wenn die Datei nicht gefunden wird.
Beste Grüße,
Sergej
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 00:09:03
onur
Sorry - UNGLEICH statt GLEICH
If Dir(x)  "" Then
z.Offset(1, 0) = x
End If

AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 08:28:56
Sergej
Hallo Onur,
das hat auch nicht geholfen. Ich kenn mich nicht so gut mit VBA aus, aber meiner Meinung nach, müsste die Prüfung nach weiteren Dateien *Planungsgrundlage*.xls* direkt nach .Interior.ColorIndex = 22 erfolgen, ohne Else.
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 13:01:55
onur
Du hast doch geschrieben: "Wenn die Datei gesuchte Datei im Verzeichnis nicht gefunden wird, dann soll im gleichem..." - insofern hast du Recht, aber dein Code macht rein gar nix, wenn die erste Suche erfolgreich war.
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 13:43:47
Sergej
Hallo Onur,
deswegen habe ich die Frage logischerweise gestellt, in der Hoffnung das mir jemand helfen kann. ;-)
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 14:07:16
onur
Häääh?
Du schreibst doch: "mit dem Makro (s. unten) prüfe ich in der Spalte D, ob der Datei existiert.... Bsp. M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\202008 Planungsgrundlage.xlsx ...Soweit alles in Ordnung."
Laut deinem Post läuft dier Teil doch angeblich, aber da ist doch nix was in Ordnung wäre, da das Makro NIX macht. Soll der Code NUR prüfen, ob die erste Datei vorhanden ist und NIX unternehmen, wenn JA?
Reden wir irgendwie die ganze Zeit aneinander vorbei?
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:07:17
Sergej
Hallo Onur,
ich versuche nochmals deutlicher ;-)
Die Einträge in der Spalte D bilden vollständigen Pfad incl. Dateiname. Bsp. M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\202008 Planungsgrundlage.xlsx
Wenn die Datei nicht existiert, dann wird die Zelle in Farbe 22 dargestellt, danach soll in diesem Fall direkt im selbem Verzeichnis geprüft werden, ob eine Datei mit Namen *Planungsgrundlage*.xls* existiert.
Falls ja, dann soll der Name dieser Datei in Spalte E eingetragen werden.
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:10:35
onur
"Wenn die Datei nicht existiert, dann wird die Zelle in Farbe 22 dargestellt" OK soweit - aber, was soll passieren, WENN sie existiert? GAR NIX?
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:22:31
Sergej
Hallo Onur,
wenn die Datei existiert, dann passiert nichts, dann wird die nächste Datei (nächste Zelle nach unten) geprüft.
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:39:34
onur
Aha - Habe es endlich kapiert.
Dann natürlich so:
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
If Dir(Replace(.Value, ".xlsx", "*.xls*"))  "" Then
z.Offset(1, 0) = Dir(Replace(.Value, ".xlsx", "*.xls*"))
End If
End If
End If
End With
Next z

AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:53:18
Sergej
Hallo Onur,
diese Datei M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\202008 Planungsgrundlage.xlsx existiert nicht und wird in Farbe 22 dargestellt. Soweit alles in Ordnung.
Im Verzeichnis M:\Vorlagen\BA-SAR01\Einstellungen\projects\Sanofi\18-LOG\08_Planunterlagen\E04\ existiert aber eine Datei die so heißt "Neue Planungsgrundlage 2021.xls"
Diese Datei müsste in z.Offset(0, 1) eingetragen werden, weil Planungsgrundlage in Dateiname vorkommt. Was muss ich bitte ändern?
Beste Grüße,
Sergej
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:54:16
onur
Siehe Nachfolge-Post von eben.
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 21:49:36
onur
Sorry - SO:

Dim x
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
x=Replace(.Value, ".xlsx", "*.xls*")
If Dir(x)  "" Then
z.Offset(1, 0) = Dir(Replace(.Value, ".xlsx", "*.xls*"))
End If
End If
End If
End With
Next z

AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 22:03:47
Sergej
Hallo Onur,
in Spalte E wird nichts eingetragen. Ich sehe nicht das man in diesem Fall nach Datei mit *Planungsgrundlage*.xls* im Verzeichnis sucht, oder?
Beste Grüße,
Sergej
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 22:08:06
onur
"Ich sehe nicht das man in diesem Fall nach Datei mit *Planungsgrundlage*.xls* im Verzeichnis sucht" ?
Nix für Ungut, aber bei "VBA nur mit Recorder" wundert mich das auch nicht. :)
Spass beiseite - poste endlich mal die (Beispiels-) Datei, damit ich das auch mal testen kann, was ich da schreibe. Sonst ist es wie Blindschach spielen (wie du siehst).
Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 22:55:12
onur
Da dir das anscheinend zu viel Arbeit ist, eine Datei zu posten, HABE ICH MIR DIE MÜHE gemacht, Eine zu bauen, damit ich testen kann!
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Dim x
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
x = Replace(.Value, ".xlsx", "*.xls*")
If Dir(x)  "" Then z.Offset(0, 1) = Dir(x)
End If
End If
End With
Next z
End Sub

Anzeige
AW: Prüfen, ob Datei existiert (Erweiterung)
11.01.2021 23:24:47
Sergej
Hallo Onur,
vielen Dank für deine Mühe. Ich habe es jetzt hinbekommen:
Sub DateienPruefen()
Dim r1 As Range, z As Range
Dim msg As String
Dim Letzte_In_A As Long
Letzte_In_A = Range("A65536").End(xlUp).Row
Set r1 = ActiveSheet.Range("D1:D" & Letzte_In_A)
Range("D1:D" & Letzte_In_A).Interior.ColorIndex = xlNone
For Each z In r1
With z
If .Value  "" Then
If Dir(.Value) = "" Then
.Interior.ColorIndex = 22
Dateiname = Dir(Left(.Value, InStrRev(.Value, "\")) & "*" & "Planungsgrundlage"  _
_
& "*.xls")
.Offset(0, 1) = Dateiname
End If
End If
End With
Next z
End Sub
Beste Grüße,
Sergej

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige