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

Dateien der letzten 31 Tage auslesen

Dateien der letzten 31 Tage auslesen
René
Liebe Excelgemeinde,
ich habe mir ein Makro geschrieben mit dem ich Dateien aus einen Ordner auslese und auflisten lasse die ein bestimmtes Textfragment enthalten was in einer Zelle steht. Hier in dem Fall in Zelle A1 zum Beispiel 15 was für Kalenderwoche 15 steht.
Das Makro sieht wie folgt aus
Private Sub CommandButton3_Click()
If Cells(1, 1) = "" Then
MsgBox ("Bitte erst Kalenderwoche eingeben für die Epikrisen gesucht werden sollen!")
Exit Sub
End If
Dim strDatei As String, lngZ As Long
Const VERZEICHNIS As String = "Y:\Epikrisen_2011\"
If Dir(VERZEICHNIS, vbDirectory) = "" Then
MsgBox VERZEICHNIS & " wurde nicht gefunden!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
.Columns(1).ClearContents
strDatei = Dir(VERZEICHNIS & "*" & Cells(1, 1) & "_" & "*.xlsm", vbNormal)
If Dir(VERZEICHNIS & "*" & Cells(1, 1) & "_" & "*.xlsm", vbNormal) = "" Then
MsgBox ("Für diese Auswahl liegen keine erfassten Epikrisen vor!")
End If
Do While strDatei  ""
lngZ = lngZ + 2
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
strDatei = Dir
Loop
End With
End Sub

Nun möchte ich aber zusätzlich ein Makro haben mit dem ich alle Dateien auslesen und auflisten lassen kann die ein bestimmtes Textfragment enthalten zum Beipiel "Patient14" und in den letzten 31 Tagen mit dem Textfragment "Patient14" erfasst und gespeichert wurden. Geht so etwas. Könnt ihr mir bitte helfen?
MfG René

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dateien der letzten 31 Tage auslesen
28.04.2011 17:32:29
Oberschlumpf
Hi René
Vielleicht ist es für einen Lösungsansatz nich unwichtig, wenn wir wissen, wo Patient14 steht (zeile/spalte).
Und vielleicht ist es genau so wichtig, wo andere Daten stehen.
Was hältst du von der Idee, uns mal ne Bsp-datei zu zeigen?
Ciao
Thorsten
AW: Dateien der letzten 31 Tage auslesen
28.04.2011 17:57:17
René
Hallo,
Das Patient1 (2,3 usw.) steht im Dateiname.
Die Epikrisendateien stehen im Laufwerk "Y:\Epikrisen_2011\" und enthalten im Dateitext den jeweiligen Patient mit Nummer.
In Zelle A1 wird der Patient mit Nummer eingegeben und dann über dieses Makro die Datei gesucht.(bisher eben nur Dateien mit der Kalenderwoche)
Kann leider keine Datei senden da sie viel zu groß ist.
MfG René
Anzeige
AW: Dateien der letzten 31 Tage auslesen
30.04.2011 09:07:12
fcs
Hallo René,
mit nachfolgenden Anpassungen kannst du einen beliebigen Textteil im Dateinamen suchen. Zusätzlich wird geprüft, ob das letzte Speicherdatum der Datei weniger als 31 Tage zurückliegt.
Gruß
Franz
Private Sub CommandButton3_Click()
Dim strDatei As String, lngZ As Long, strSuchen As String, bolGefunden As Boolean
Const VERZEICHNIS As String = "Y:\Epikrisen_2011\"
Const msgTitel = "Epikrisen in den letzten 31 Tagen"
Const msgButton = 64 'vbInformation + vbOkOnly
If Cells(1, 1) = "" Then
MsgBox ("Bitte erst in Zelle A1 Suchbegriff eingeben für den Epikrisen " _
& "gesucht werden sollen!"), msgButton, msgTitel
Exit Sub
End If
If Dir(VERZEICHNIS, vbDirectory) = "" Then
MsgBox VERZEICHNIS & " wurde nicht gefunden!" & Space(10), 64, "weise hin..."
Exit Sub
End If
With ActiveSheet
'Suchbegriff aus Zelle A1 auslesen
strSuchen = "*" & Cells(1, 1).Text & "*.xlsm" 'sucht Text an beliebiger Position im  _
Dateinamen
'    strSuchen = Cells(1, 1).Text & "*.xlsm" 'sucht Text am Beginn des Dateinamens
.Range(.Columns(1), .Columns(2)).ClearContents
strDatei = Dir(VERZEICHNIS & strSuchen, vbNormal)
If strDatei = "" Then
MsgBox ("Für diese Auswahl liegen keine erfassten Epikrisen vor!"), _
msgButton, msgTitel
Else
bolGefunden = False
Do While strDatei  ""
'Prüfen, ob Datei jünger 31 Tage
If Int(VBA.FileDateTime(VERZEICHNIS & strDatei)) >= Date - 31 Then
lngZ = lngZ + 2
.Hyperlinks.Add Anchor:=.Cells(lngZ, 1), _
Address:=VERZEICHNIS & strDatei, SubAddress:="", _
TextToDisplay:=strDatei
.Cells(lngZ, 2) = VBA.FileDateTime(VERZEICHNIS & strDatei)
bolGefunden = True
End If
strDatei = Dir
Loop
If bolGefunden = True Then
.Range(.Columns(1), .Columns(2)).AutoFit
Else
MsgBox "Für diese Auswahl liegen keine erfassten Epikrisen vor!", _
msgButton, msgTitel
End If
End If
End With
End Sub

Anzeige
AW: Dateien der letzten 31 Tage auslesen
30.04.2011 21:55:50
René
Hallo Franz,
ich danke Dir über alle Maßen. Ich staune immer wieder was es hier für Leute gibt die sich so viel Zeit für andere nehmen, Probleme lösen und einfach helfen. Ihr seid alle Engel
Ich hoffe das ich hier auch ab und an mal in zukunft anderen helfen kann, vielleicht mit kleineren Problemen.
Schönes We.
René

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige