Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1880to1884
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

Pdf Dateiabgleich nach Excelliste

Pdf Dateiabgleich nach Excelliste
10.05.2022 13:50:17
Andy_69
Hallo zusammen,
Ich habe ein Problem der der Auswertung vorhandener Pdf-Dateien und benötige etwas Hilfe.
Ich habe eine Excel-Tabelle mit 6 Spalten [A bis F] und als VBA eine Schleife gebaut (siehe unten).
Spalte_A: 91806145016-2 (Rechten 8 Zeichen werden benötigt für Dateifindung)
Spalte_B: IS200 (IH-Stufe, benötigt für Dateifindung)
Spalte_C: Werk München (wird nicht benötigt)
Spalte_D: 08.04.2022 (Datum, benötigt für Dateifindung, aber Formatänderung)
Spalte_E: 145 (Bauart, benötigt für Pfad [BR 145]
Spalte_F: Ergebnis "Ja" bzw "Nein"
Jetzt möchte ich aus diesen feststellen, welche Pdf-Datei schon abgelegt ist oder nicht. Ergebnis in Spalte [F] mit "ja bzw nein".
Die abgelegten Dateien sind so aufgebaut: "2022.03.05 GN 145016-2 (IS200)"
Mein Problem ist, das alles mit "Nein" beantwortet wird, obwohl teilweise Dateien genau in den Format vorhanden sind.
Ich habe es mal mit einer Testdatei in txt-Format getestet, und die fand er. Also doch gar nicht so verkehrt. Evtl. liegt es am Datum, oder?
VBA-Code...

Private Sub Dateiprüfung_Click()
Dim sBA As String
Dim sFile As String
Dim sReiter As String
Dim sPath As String
Dim sFz As String
Dim sIH As String
Dim lngRow As Long
Dim sMax As Long
sPath = "\\bku\db\DB_005\Glw_04\L.RBA_42\Abteilung\Tfz_E_Lok\E-Lok_Dokumente und Protokolle\"     'Pfad im Gruppenlaufwerk
sReiter = ActiveSheet.Name                                                                                    'Reitername
sMax = Sheets(sReiter).Range("L3")                                                                       'Anzahl DS
If MsgBox("Wollen Sie wirklich die Dateiprüfung starten?" & vbCrLf & vbCrLf & _
"Alle Daten werden ggf. überschrieben und können nicht wieder zurückgeholt werden!" _
, vbYesNo + vbQuestion, "Dateiprüfung?") = vbYes Then
For lngRow = 5 To sMax
sBA = "BR " & Sheets(sReiter).Cells(lngRow, 5).Value & "\"                                   'Bauartordner
sFz = Right(Sheets(sReiter).Cells(lngRow, 1).Value, 8)                                          'Fahrzeugordner
sIH = " (" & Sheets(sReiter).Cells(lngRow, 2).Value & ")"                                        'IH-Stufe
sFile = Format(Sheets(sReiter).Cells(lngRow, 4).Value, "YYYY.MM.DD") & " GN " & sFz & sIH        'Dateiname
If Dir(sPath & sBA & sFz & "\" & sFile)  "" Then
'Datei vorhanden
Sheets(sReiter).Cells(lngRow, 6).Value = "ja"
Sheets(sReiter).Cells(lngRow, 5).Value = Date
Else
'Datei nicht vorhanden
Sheets(sReiter).Cells(lngRow, 6).Value = "nein"
End If
Next lngRow
Else
MsgBox "Prüfung durch Anwender abgebrochen!", vbExclamation, "Abbruch..."
End If
End Sub
Ich hoffe es kann mir einer helfen.
Viele Grüße und Danke im vorraus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pdf Dateiabgleich nach Excelliste
10.05.2022 14:22:46
Fennek
Hallo,
hier ein Versuch den Dateinamen zu generieren:

Sub F_en()
Dim Tx As String
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr
Tx = Format(Cells(i, 4), "yyyy.mm.dd") 'Datum
Tx = Tx & " GN " & Right(Cells(i, 1), 8)
Tx = Tx & " (" & Cells(i, 2) & ")"
Cells(i, 8) = Tx & ".pdf"
Next i
End Sub
Es fehlt der Pfad (mit "145") und die Abfrage mit DIR(Pfad & File)
mfg
AW: Pdf Dateiabgleich nach Excelliste
11.05.2022 07:34:05
Andy_69
Hallo Fennek,
Mit deiner Lösung konnte ich was anfangen und habe es wie folgt angepasst.
Vielen Dank

Private Sub Dateiprüfung_Click()
Dim sPath, sMax, Tx, Pf As String
sPath = "\\bku\db\DB_005\Glw_04\L.RBA_42\Abteilung\Tfz_E_Lok\E-Lok_Dokumente und Protokolle\"   'Pfad
sMax = Range("L3")                                                                              'Anzahl DS
If MsgBox("Wollen Sie wirklich die Dateiprüfung starten?" & vbCrLf & vbCrLf & _
"Alle Daten werden ggf. überschrieben und können nicht wieder zurückgeholt werden!" _
, vbYesNo + vbQuestion, "Dateiprüfung?") = vbYes Then
For i = 5 To sMax
Tx = Format(Cells(i, 4), "yyyy.mm.dd")      'Datum
Tx = Tx & " GN " & Right(Cells(i, 1), 8)    'Fz-Nummer
Tx = Tx & " (" & Cells(i, 2) & ")"          'IH-Stufe
Tx = Tx & ".pdf"
Pf = sPath                                  'Pfad/Glw
Pf = Pf & "BR " & Cells(i, 16) & "\"        'Bauart
Pf = Pf & Right(Cells(i, 1), 8) & "\"       'Fz-Nummer
If Dir(Pf & Tx)  "" Then
'Datei vorhanden
Cells(i, 6) = "ja"
Cells(i, 5).Value = Date
Else
'Datei nicht vorhanden
Cells(i, 6).Value = "nein"
End If
Next i
Else
MsgBox "Prüfung durch Anwender abgebrochen!", vbExclamation, "Abbruch..."
End If
End Sub
Danke
vg Andy
Anzeige
AW: Pdf Dateiabgleich nach Excelliste
17.05.2022 10:42:46
Andy_69
Hallo zusammen,
Ich hätte noch eine Zusatzfrage bzgl. der Pfadangabe. Wenn meine Bauart abweicht und hinter der Zahl (Muster: BR 145abc) noch Zeichen igw. kommen, möchte ich dies mit einen Platzhalter abfangen, bekomme es aber nicht hin.
Beispiel mit "*", aber funktioniert so nicht.
Pf = sPath 'Pfad/Glw
Pf = Pf & "BR " & Cells(i, 16) & "*\" 'Bauart
Pf = Pf & Right(Cells(i, 1), 8) & "\" 'Fz-Nummer
vg Andy
AW: Pdf Dateiabgleich nach Excelliste
10.05.2022 14:59:46
Hardy
Nur mal so als Frage,
im Dateinamen ist vor der Klammer "(" ein Leerzeichen. wo holst du das in deinem Code (sIH) her, bzw. wo wird das generiert.
Gruß
Hardy R
Anzeige
AW: Pdf Dateiabgleich nach Excelliste
11.05.2022 06:37:21
Andy_69
Hallo Hardy R,
Die Klammern stelle in "sIH" fest ein, und sIH wiederum wird dann in sFile mitunter übernommen.
vg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige