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

VBA For Each Speicherpfade auslesen

VBA For Each Speicherpfade auslesen
24.11.2023 18:47:26
Nermin
Hallo Leute,

ich könnte etwas Unterstützung bei Schleifen in VBA brauchen. Vielleicht findet sich ja jemand der mir mit dem Code hilft und mir diesen ggf. auch so erklärt, dass ich dabei was lerne =)

Ich habe in der Spalte A Speicherpfade von gewissen Dokumenten aufgelistet welche bei uns auf dem Firmenserver verteilt sind. Ich möchte mir daneben in der Spalte B anzeigen lassen ob die Datei noch existiert. Wenn die Datei existiert, dann soll in der Spalte C das Speicherdatum FileDateTime angegeben werden. Wenn die Datei nicht existiert dann soll in Spalte C ein beliebiger Text (zb. File missing) stehen.
Der Rangebereich sollte zudem dynamisch sein, da die Liste in Zukunft sicherlich noch weiter wachsen wird. Ich weiß nicht ob die Info auch notwendig ist aber in der ersten Zeile befinden sich Überschriften.

Einzelne Abfragen mit FileDateTime und Dir bekomme ich hin. Es übersteigt jedoch meine Skills das ganze nun in einer Schleife zu automatisieren und zwischen den Spalten zu springen.

Hintergrund: in verwalte in unserer Abteilung viele Dokumente. Diese müssen regelmäßig auf Aktualisierungen im Netzwerk überprüft werden und bei bedarf neu ausgedruckt und physisch bereit gestellt werden (zb. Sicherheitsdatenblätter, usw.) Mit diesem Code möchte ich mir die Arbeit wesentlich erleichtern. Falls das ausgelesene Datum größer ist als das Datum meiner letzten Kontrolle, weiß ich sofort, dass es eine neuere Version gibt. Falls ein Dokument nicht mehr gefunden wird, wurde es umbenannt oder als "ungültig" erklärt.

besten Dank im Voraus und allen noch einen angenehmen Abend

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

Betreff
Datum
Anwender
Anzeige
AW: VBA For Each Speicherpfade auslesen
24.11.2023 19:05:48
onur
"Falls das ausgelesene Datum größer ist als das Datum meiner letzten Kontrolle" ? Wie willst du das überprüfen, wenn doch die alten Werte einfach überschrieben werden?
AW: VBA For Each Speicherpfade auslesen
24.11.2023 19:27:42
Yal
Hallo Nermin,

Probiere
Sub DateienInfo_sammeln()

'unter vorige Anbindung (early binding) der Bibilothek
'"Microsoft Scripting Runtime"
'(über "Extras", "Verweise...", Haken bei der besagten Bib)
Dim Z As Range 'Z wie Zelle
Dim FSO As New FileSystemObject
Dim F As File

With Worksheets("Tabelle1")
For Each Z In Range(Range("A1"), Range("A999999").End(xlUp))
If Not Z.Value = "" Then
Set F = FSO.GetFile(Z.Value)
If Not F Is Nothing Then
Z.Offset(, 1) = "gefunden"
Z.Offset(, 2) = F.DateLastModified
End If
End If
Next
End Sub


VG
Yal
Anzeige
AW: VBA For Each Speicherpfade auslesen
24.11.2023 19:34:42
Alwin Weisangler
Hallo,

ich gebe auch meinen Dreier dazu allerdings nicht For Each sondern via Strg./T Tabelle.
Es führen eben viele Wege nach Rom.
https://www.herber.de/bbs/user/164573.xlsm

Gruß Uwe
AW: VBA For Each Speicherpfade auslesen
24.11.2023 19:43:06
Alwin Weisangler
Sorry, FileDateTime hatte ich übersehen.

dann so:


Sub PfadTesten()
Dim arr(): arr = Tabelle1.ListObjects(1).DataBodyRange 'Läd Strg./T Tabelle in Array
Dim Test
For i = 1 To UBound(arr) ' Schleife prüft ob Pfad vorhanden ist
If Dir(arr(i, 1)) > "" Then
arr(i, 2) = "vorhanden" 'vorhanden wird ins Array geschrieben
arr(i, 3) = FileDateTime(arr(i, 1)) 'Datum der letzten Änderung
Else
arr(i, 2) = "fehlt" 'fehlt wird ins Array geschrieben
arr(i, 3) = "keine"
End If
Next i
Tabelle1.ListObjects(1).DataBodyRange = arr 'Array wird in Strg./T Tabelle zurückgeschrieben
End Sub


Gruß Uwe
Anzeige
AW: VBA For Each Speicherpfade auslesen
24.11.2023 19:19:53
Piet
Hallo

zum Backen nehmen man das Dr. Oetker Backbuch, zum Dateien prüfen eine Ordner auflisten Programm.
Da kannst du in 4 Tabellen jede Woche einen Ordner mit Unterordner komplett auflisten.
https://www.herber.de/bbs/user/164572.xls

Ladest du alle Tabellen in die Übersicht, sortierst nach Dateinamen und aktivierst den Button "dopp" markieren, bekommst du alle doppelten Dateien angezeigt. Dann siehst du auch die Dateilänge und das letzte Datum.

mfg Piet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige