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

Ordner durchsuchen mit Ausnahme

Ordner durchsuchen mit Ausnahme
20.01.2017 21:43:41
Al
Hallo zusammen,
ich habe eine Frage bezüglich des unten aufgeführten Makros.
Kurze Erläuterung dazu: Das Makro durchsucht Verzeichnisse nach Exceldateien mit > 25 Zeichen und entnimmt diesen bestimmte Werte und listet sie in einer Datei auf...
Das klappt alles super mit zwei Ausnahmen. Zum einen wird die Durchsuchung abgebrochen, wenn in den durchsuchten Verzeichnissen eine temporäre Exceldatei vorhanden ist, die beispielsweise erzeugt wird während die Datei geöffnet ist (z.B. "~Musterblatt.xls").
Zum anderen wird die Durchsuchung gestoppt, da einige Exceldateien noch eine Verknüpfung bzw. Aktualisierungsanforderung enthalten. Der Anwender muss also auf "Weiter" bzw. "Nicht aktualisieren" klicken, damit die Durchsuchung fortgeführt wird.
Hat jemand eine Idee, wie man diese Problemstellung lösen könnte, sodass die Durchsuchung ohne Abbruch bzw. unnötigen Stop durchlaufen kann?
Danke schon mal für die Mühe.
Option Explicit
Dim fso As FileSystemObject
Dim zeileZ As Long
Dim wsZ As Worksheet
Sub DatenAuslesen_mit_Unterverz()
ThisWorkbook.SaveCopyAs (ThisWorkbook.Path & "\" & _
Replace(ThisWorkbook.Name, ".xls", "_backup.xls"))
Dim ergebnis As Long
Dim fd As FileDialog
Dim fol As Folder
Dim letzteZeileZ As Long
Dim pfad As String
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.InitialFileName = ThisWorkbook.Path & "\"
ergebnis = fd.Show
If ergebnis = 0 Then
'    MsgBox Prompt:="Abbruch durch den Benutzer"
Exit Sub
End If
pfad = fd.SelectedItems(1)
Set fso = New FileSystemObject
Set fol = fso.GetFolder(pfad)
Set wsZ = ThisWorkbook.Worksheets("Datenauslese")
letzteZeileZ = wsZ.Cells(wsZ.Rows.Count, "A").End(xlUp).Row
zeileZ = letzteZeileZ + 1
Folder_abarbeiten Verzeichnis:=fol
Set fso = Nothing
End Sub

Sub Folder_abarbeiten(Verzeichnis As Folder)
Dim fil As File
Dim fol As Folder
Dim pos As Long
Dim suchErgebnis As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim zeichNr As String
Dim zeileStahlgewicht As Long
For Each fil In Verzeichnis.Files
If fil.Name Like "*.xls*" Then
pos = InStrRev(fil.Name, ".")
zeichNr = Left$(fil.Name, pos - 1)
If Len(zeichNr) 

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

Betreff
Datum
Anwender
Anzeige
AW: Ordner durchsuchen mit Ausnahme
21.01.2017 08:13:00
fcs
Hallo Al,
mit folgenden Anpassungen in der Sub sollten die Datein mit "~" am Anfang und die aktuell geöffnete Datei übersprungen werden sowie die Aktualisierung von Formel-Links unterdrückt werden.
Ansonsten könnte es helfen, wenn die relevanten Verzeichnisse unter Optionen im Sicherheitscenter als vertrauenswürdige Speicherorte definiert werden.
LG
Franz
Sub Folder_abarbeiten(Verzeichnis As Folder)
Dim fil As File
Dim fol As Folder
Dim pos As Long
Dim suchErgebnis As Object
Dim wb As Workbook
Dim ws As Worksheet
Dim zeichNr As String
Dim zeileStahlgewicht As Long
For Each fil In Verzeichnis.Files
If Left(fil.Name, 1) = "~" Then
'überspringen
ElseIf LCase(ThisWorkbook.Name) = LCase(fil.Name) Then
'überspringen
ElseIf fil.Name Like "*.xls*" Then
pos = InStrRev(fil.Name, ".")
zeichNr = Left$(fil.Name, pos - 1)
If Len(zeichNr) 

Anzeige
AW: Ordner durchsuchen mit Ausnahme
21.01.2017 10:45:42
Al
Das klappt schon mal super, danke. Richtig testen kann ich den Code erst am Montag.
Noch eine Frage: Ist es richtig, dass geöffnete Dateien nicht durchsucht werden können bzw. die entsprechenden Daten nicht ausgelesen werden können? Damit meine ich nicht die temporären Dateien mit "~" sondern die Originaldatei.
Grüße
AW: Ordner durchsuchen mit Ausnahme
21.01.2017 13:42:22
fcs
Hallo Al,
man kann geöffnete Dateien schon durchsuchen, man kann eine Datei mit dem gleichen Namen aber nicht erneut öffnen.
Man muss dann eine Prüfung einbauen, ob die Datei mit dem Namen schon geöffnet ist. Wenn JA dann geöffnete Datei durchsuchen, wenn NEIN dann Datei öffnen und durchsuchen.
Wenn JA, dann darf die Datei ggf. nicht geschlossen werden - auf jeden Fall nicht wenn es sich um die Datei mit dem Makro handelt.
Probleme bekommst du, wenn der Name einer geöffneten Datei in mehreren der zu durchsuchenden Unterverzeichnisse vorkommen kann.
Falls dies der Fall ist, dann müssen das Makro und das Zieltabellenblatt in einer separaten Datei gespeichert werden, die einen Namen hat, der in den Verzeichnissen nicht vorkommt.
LG
Franz
Anzeige
AW: Ordner durchsuchen mit Ausnahme
21.01.2017 14:26:57
Al
Das hilft mir doch schon weitere.
Vielen Dank und schönes Wochenende.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige