Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien lokalisieren mit EXCEL?

Frage Microsoft Microsoft Office

Mitglied: LoveBoat

LoveBoat (Level 1) - Jetzt verbinden

21.01.2009, aktualisiert 12:29 Uhr, 4565 Aufrufe, 14 Kommentare

Liste mit Dateinamen in Excel auf Festplatte finden

Hallo,

ich stehe vor dem Problem, dass für eine große Liste mit Dateinamen, die in Excel generiert wurde nun der Speicherort einer jeden Datei gefunden werden soll. Dh.: Mir wäre geholfen wenn jemand ein Tool (zB ein Makro) hätte, was für jede Zeile einer Spalte eine Suche durchführt und mir den Standort der Datei daneben in die näcshte Spalte schreibt. Gibt es sowas?

Ich habe ein ähnliches Makro gefunden, wobei hier der Suchbefehl auf eine Partition / einen Ordner eingeschränkt werden muss und dann -aus irgendeinem Grunde - der gesamte Ordnerinhalt angezeigt wird.

Nach jeder Datei einzeln zu suchen würde zu lange dauern, da es sich um rund 3000 Stück handelt.

Danke für die Hilfe!
Mitglied: godlie
21.01.2009 um 12:34 Uhr
Hallo,

kannst du den Suchbereich ein wenig einschränken?Oder soll das "etwas" alle vorhanden Laufwerke abgrasen ?
Bitte warten ..
Mitglied: LoveBoat
21.01.2009 um 12:46 Uhr
Hallo.

Nein, es sollen nicht alle vorhandenen Laufwerke durchsucht werden, aber eine komplette Partition.
Eine Einschränkung des Suchbereichs ist m.E .nicht unbedingt notwendig.
Bitte warten ..
Mitglied: godlie
21.01.2009 um 13:05 Uhr
Also diesbezüglich fällt mir eine sehr banale Methode ein.
Im Root Verzeichnis der Partiton z.b. C:\ ein
01.
dir /S /B > test.txt
machen somit werden alle und zwar wirklich alle Ordner Unterordner abgegrast.

Sieht dann ungefähr so aus:
01.
C:\Dokumente und Einstellungen\x\y\csharp-usb-hid-driver\USBHIDDRIVER\TESTS 
02.
C:\Dokumente und Einstellungen\x\y\csharp-usb-hid-driver\USBHIDDRIVER\USB
Dann musst du eigentlich nur noch von hinten anfangen nach dem ersten vorkommnis von \ zu trennen und dann die Dateinamen abzugliechen mit deiner Liste, wenn treffer dann Zeile übernehmen.....

Kommst damit zurecht?
Bitte warten ..
Mitglied: LoveBoat
21.01.2009 um 13:20 Uhr
Hey, Danke!

Den DOS Befehl kannte ich nur ohne das "/b". Das hätte mir im Vorfeld extrem viel Arbeit erleichtert. Insofern schonmal ein dickes Danke!
Was deinen letzten Satz angeht; ich weiß nicht wie ich das machen kann. Ich habe zwar schonmal zwei Tabellen auf Übereinstimmung hin überprüft, aber Zeile übernehmen und von hinten und so... noch nie gemacht.

Tipp?


Gruß,
F
Bitte warten ..
Mitglied: godlie
21.01.2009 um 14:25 Uhr
Sodala

01.
Sub Crawler() 
02.
  Dim intFile As Integer 
03.
    Dim strText As String 
04.
    Dim vntArray As Variant 
05.
    Dim localArr As Variant 
06.
    Dim fileName As Variant 
07.
     
08.
    intFile = FreeFile 
09.
    Open "C:\Dokumente und Einstellungen\x\Desktop\test2.txt" For Binary As #intFile 
10.
        strText = Space$(LOF(intFile)) 
11.
        Get #intFile, , strText 
12.
    Close #intFile 
13.
    localArr = Range("range1").Value 'Dies ist eine Definierte Range ( Bereich Markieren und benennen ) 
14.
    vntArray = Split(Left$(strText, Len(strText) - 2), vbNewLine) 
15.
    For i2 = LBound(vntArray) To UBound(vntArray) ' hier wird das Array der Textfile durchlaufen 
16.
        For i1 = LBound(localArr) To UBound(localArr) ' hier wird das Array der Range durchlaufen  
17.
            fileName = Split(vntArray(i2), "\") ' aufsplitten des Pfades 
18.
            If (fileName(UBound(fileName)) = localArr(i1, 1)) Then ' Ubound(filename) gibt mir den letzen Index des Arrays zurück darin befindet sich der Dateiname 
19.
                MsgBox ("Found" & vntArray(i2)) 'Hier ist er Punkt wo du etwas rausschreiben musst. vntArry(i2) beinhaltet den gesamten Pfad 
20.
            End If 
21.
        Next i1 
22.
    Next i2 
23.
End Sub 
24.
 
grüße
Bitte warten ..
Mitglied: LoveBoat
21.01.2009 um 14:53 Uhr
Hey, Danke.

Also, das sieht spannend aus. Ich habe im Grunde keinen Plan von Makros (= cut & paste kann ich, selbst schreiben nicht).

Bei dem Ding da oben sind mir jetzt zwei Sachen aufgefallen:
1. Zeile 09: Meine Datei liegt natürlich woanders und heißt auch anders, das habe ich dann sinngemäß ersetzt.
2. Diese Änderung alleine reicht nicht aus. Du hast ja auch in Zeile 13 stehen dass dort etwas eingefügt werden müsste. Mit dem hint kann ich allerdings nichts anfangen.
Hatte es zunächst einfach so probiert und natürlich eine Fehlermeldung für genau diese Stelle bekommen. --> Was genau muss markiert und benannt werden? Ein Bereich in der Tabelle?


Achso, habs verstanden. Aber jetzt sagt mir der Fehlerreport in Zeile 14 sei ein Fehler.
I
Bitte warten ..
Mitglied: godlie
22.01.2009 um 10:14 Uhr
Hallo

Ein Bereich der Tabelle ist die Sache die du definieren musst.
Es geht übrigens auch so:
01.
Range("B2:C8")
Weiters ist dann halt der Punkt, dass du den Pfad hinschreiben willst.
Wie willst du den Pfad hinschreiben? soll es ein Hyperlink werden? oder nur ein einfacher text?

grüße
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 10:55 Uhr
Hey,

also das mit der Range habe ich noch hinbekommen. Es soll im Grund ja einfach eine Spalte (rund 3000 Zeilen) durchsucht werden.
Wie der Pfad dann ausgegeben wird ist mir im Grunde egal. Ich muss halt die fehlenden Dateien lokalisieren und kopieren (es handelt sich um zwei Rechner - bzw. ein Archiv).
Weiß nicht was da am sinnvollsten wäre...?
Bitte warten ..
Mitglied: godlie
22.01.2009 um 11:03 Uhr
Hm das ist eine gute Frage.
WIe sieht denn das aus, ist jede Datei die du in dieser Liste hast irgendwohin zu kopieren?
Wenn ja dann würd ich das gleich mit dem Makro erledigen, wenn Nein dann würd ich mir die Pfadinformationen mal im Klartext ablegen und bei bedarf kann ich die Infos ja in eine Stapelverarbeitung überführen und dort abarbeiten lassen.

Ich persönlich bin für beide Lösungen offen und kann dir da helfen......

grüße
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 12:45 Uhr
Hallo,

also, ich habe das jetzt gerade laufen. Das Problem ist leider, dass ich jeden Fund mit OK bestätigen muss. Das ist in sofern problematisch als dass die eine Liste zwar "nur" 3000 Positionen beeinhaltet aber die txt-File ungefähr 10mal soviel.
Ich bräuchte einfach nur die Lokalisation (sprich der erste Fund in der Textliste) ausgegeben in Spalte B. --> D.h. neben dem Dateinamen sollte dann der Fund aus der Textfile stehen.
Bitte warten ..
Mitglied: godlie
22.01.2009 um 12:54 Uhr
Hm hehe ja das Problem hatte ich auch da half nur Flasche auf die Entertaste stellen und Kaffe trinken gehen.

Also zu dem fehlt dir noch :

in der zeile 19 wo die MsgBox steht ist folgendes einzutragen die Msgbox kannst rauslöschen

Nehmen wir an deine zu suchenden Werte stehen in der Reihe A Ergebnisse kommen in die Reihe B

01.
Range("B"&i1).Value = vntArray(i2)
Damit sollte es Gehen
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 13:04 Uhr
Zeile 19 habe ich jetzt durch

Range("B"&i1).Value = vntArray(i2)

ersetzt. jetzt rechnet sich Excel die Seele aus dem Leib. Ich geb ihm noch 5 Minuten, dann sollte es doch eigentlich fertig sein?

Ich bin gespannt....
Bitte warten ..
Mitglied: LoveBoat
22.01.2009 um 13:08 Uhr
Yes we can!
Hat geklappt!!
Ich bin von den Socken, das hilft mir jetzt und in alle Ewigkeit. Super, super, super!

Tausend Dank!
Bitte warten ..
Mitglied: godlie
22.01.2009 um 13:09 Uhr
Freut mcih wenns funktioniert hat, ich habs nur mit einer kleinen Liste probiert und da war er schon recht fix dabei.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Txt Dateien in Excel importieren (9)

Frage von Serbitar zum Thema Microsoft Office ...

Microsoft Office
Mehr als 20 Excel Dateien öffnen gleichzeitig (7)

Frage von PizzaPepperoni zum Thema Microsoft Office ...

Microsoft Office
Excel Dateien durchsuchen und Werte einzeln in neue Excel Datei auslesen (1)

Frage von krischanii zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...