Excelliste mit Ordner auf Festplatte vergleichen

Hallo Experten,

ich habe folgendes Problem:
Auf einer externen Festplatte sind Ordner und Unterordner, die z.B. wie folgt strukturiert sind:
\Ordner1
\Ordner1\Ordner2
\Ordner1\Ordner2\Ornder3
\Ordner1\Ordner2\Ornder3\Ordner4

Außerdem habe ich eine Exceltabelle. In Blatt1, Spalte 1, sind Texte, z.B. Ordner1, Ordner2,OrdnerXYZ,

Ich möchte nun, dass automatisch die Exceltabelle mit den Ordner auf der Festplatte verglichen wird und diejenigen in der Exceltabelle markiert werden, die nicht auf der Festplatte sind. Bei dem o.g. Beispiel müßte das Feld mit dem Begriff OrdnerXYZ markiert werden, weil es nicht auf der Festplatte ist.

Ist so etwas möglich? Gibt es vielleicht eine Software, die sowas kann?

Die Festplatte kann ich entweder an einem PC mit Windows XP und Office 2003 oder mit Windows 7 und Office 2010 anschließen.

Viele Grüße

Birgit

Moin Moin,

ja, das geht mit Boardmitteln. Nutze VBA um diese Funktion deiner Excelmappe hinzuzufügen.

Aber mal ehrlich: was willst du mit so einem Umstand anfangen?

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo,

mit VBA kenne ich mit leider nur bedingt aus. Ich dachte, dass es vielleicht ein Programm gibt, mit dem das einfach geht.

Zu Deiner Bemerkung: „Aber mal ehrlich: was willst du mit so einem Umstand anfangen?“

Wenn es keine automatische Lösung gibt, heißt das für mich, dass ich manuell vergleichen muß, welche Ordner auf der Festplatte vorhanden sind und welche nicht. Und das ist bei über 1000 Ordnern, echt zeitaufwendig.

Gruß
Birgit

1 Like

Moin Moin,

eine genauere Beschreibung was du erreichen willst wäre hilfreich.

Es gibt z.B. Programme für die Synchronisation von Festplatten-Partitionen. Diese prüfen automatisch, welche Ordner fehlen und erstellen diese dann auch.

Excelliste Dateisystem ist eher EDV zu Fuß :smile:

Grüße aus Rostock
Wolfgang
(Netwolf)

Versuchs mal hiermit
Hallo Birgit,

ich habe dir mal einen Makro gebastelt und hochgeladen. Er ist für Excel 2003. Du kannst ihn hier runterladen:
http://www.file-upload.net/download-4299814/OrdnerSu…
Eine Kurzanleitung steht drin. Probiers mal aus und melde dich, falls es Probleme gibt.

Gruß und Viel Erfolg,
Andreas

Hallo Andreas,

erst einmal vielen Dank für Deine unkomplizierte Hilfe. :smile: Das ist fast genau das was ich brauche. Danke! *freu*Hüpf*freu*

Kann man in das Makro auch noch einbauen, dass es Ordner findet, die z.B. „Musterordner 01“ ODER „01 Musterordner“ heißen, obwohl in der Excelliste „Musterordner“ steht. Wenn das ginge, wäre mein Glück perfekt.

Viele Grüße

Birgit :smile:

1 Like

Noch ne Gegenfrage
Hallo Birgit,

freut mich, dass es so weit auf Anhieb geklappt hat.

Wie soll das mit dem „Musterordner 01“ genau aussehen?
In der Liste steht „Musterordner“.
Was soll er alles finden?

"Musterordner 01"
"Musterordner 02"
"Musterordner 01"
"Irgendwas Musterordner sonstnochwas"
"002 Musterordner"

Du siehst, das kann beliebig kompliziert werden.
Hier musst du also ganz genau angeben, was er finden soll, also z.B.
Beliebig viele Ziffern - beliebig viele Leerzeichen - Musterordner

oder

Beliebig viele Ziffern - beliebig viele Leerzeichen - Musterordner - beliebig viele Leerzeichen - Beliebig viele Ziffern

oder
Genau 2 Ziffern - genau ein Leerzeichen - Musterordner

Oder irgendwie so.
Das suchen nach Textmustern ist immer eine heikle Sache. Aber wenn du mir ein genaues Schema angibst, versuche ich es mal in den Makro zu packen.

Gruß, Andreas

1 Like

Hallo Andreas,

Danke für Deine erneute schnelle Antwort. :smile:

Also das Makro sollte suchen:

„Irgendwas Musterordner sonstnochwas“

In der Exceltabelle kann stehen:
z.b. Musterordner, Der Musterordner, Musterordner zwei,

Bei einer Suche im Explorer würde ich angeben:
*Musterordner* bzw. *Der Mustrordner* bzw. *Musterordner zwei*

Es sollte dann also gefunden werden, z.B.

„Der Musterordner“
„Der große Musterordner“
„Musterordner zwei“
„Musterordner 01“
„Musterorder ist ganz groß“
„Der große Musterordner ist ganz groß“
„Der große Musterordner zwei“
usw.

Viele Dank nochmal für Deine Hilfe! :smile:

Birgit :smile:

1 Like

Hallo Birgit,

OK, dann versuch’s mal hiermit:
http://www.file-upload.net/download-4310500/OrdnerSu…

Ich habe den Makro jetzt so umgeschrieben, dass:

  • Wenn er irgendwo in einer Zelle das Wort „Musterordner“ findet, egal ob groß oder klein geschrieben, und egal in welchem Zusammenhang,
  • dann ist der Ordner vorhanden, wenn igendwo in den Ordnern das Wort „Musterordner“ (egal ob groß oder klein) gefunden wird.

An Sonsten wie bisher.

Hab ich das jetzt richtig verstanden?

Gruß, Andreas

1 Like

OT Vba, Datei auf einmal einlesen

http://www.file-upload.net/download-4310500/OrdnerSu…

Hallo Andreas,

du benutzt:

fLen = FileLen(DieseArbeitsmappe.Path & "\verz.txt")
Open DieseArbeitsmappe.Path & "\verz.txt" For Binary Access Read As #1
 verzStr = String(fLen, " ")
 Get #1, , verzStr
Close #1

Mir wurde (von Rainer vom VB-Brett) dieser Code gezeigt den ich
seither benutze um eine Datei auf einmal einzulesen.

Function Einlesen(Datei) As String
Dim FF As Long
FF = FreeFile
Einlesen = Space(FileLen(Datei))
Open Datei For Binary As #FF
 Get #FF, , Einlesen
Close #FF
End Function

Vielleicht ist das ja auch was für dich.

Und, ich weiß schon daß du und ich glaube er heißt Stefan,
beide sehr fit in Vba seid. Schade daß ihr euch so selten mit Codes zeigt. Ich lese gerne Codes um was für mich zu lernen, zu verbessern.

Und2, ja, wenn es beim Festplattenauslesen schnell gehen muß,
da es sonst zu lange dauert, benutze ich auch gerne das gute alte Dos, also Dir.
Vba sowieso, aber sogar VB ist da langsamer, C o.ä. weiß ich nicht.

Gruß
Reinhard

1 Like

http://www.file-upload.net/download-4310500/OrdnerSu…

Hallo Andreas,

Guten Morgen Reinhard,

du benutzt:

fLen = FileLen(DieseArbeitsmappe.Path & „\verz.txt“)
Open DieseArbeitsmappe.Path & „\verz.txt“ For Binary Access
Read As #1
verzStr = String(fLen, " ")
Get #1, , verzStr
Close #1

Mir wurde (von Rainer vom VB-Brett) dieser Code gezeigt den
ich
seither benutze um eine Datei auf einmal einzulesen.

Function Einlesen(Datei) As String
Dim FF As Long
FF = FreeFile
Einlesen = Space(FileLen(Datei))
Open Datei For Binary As #FF
Get #FF, , Einlesen
Close #FF
End Function

Vielleicht ist das ja auch was für dich.

Ja, das ganze Einlesen in eine Funktion zu packen, ist eine clevere Sache. Werde ich mir merken.

Und, ich weiß schon daß du und ich glaube er heißt Stefan,
beide sehr fit in Vba seid. Schade daß ihr euch so selten mit
Codes zeigt. Ich lese gerne Codes um was für mich zu lernen,
zu verbessern.

Blumen vom Guru. Vielen Dank!
Ich würde auch gerne viel öfter hier posten. Aber:

  • Ich kann mir nicht so viel Zeit nehmen, wie z.B. du (ich frage mich immer, wie du das machst). Wenn ich hier im Brett lese, sind die meisten Fragen schon beantwortet, und zwar gut und zufriedenstellend. Da muss ich dann nicht auch noch mal.
  • Von den Fragen, die noch nicht beantwortet sind, picke ich mir die Fragen raus, die für mich interessant klingen und eine Herausforderung darstellen. Da versuche ich dann Code zu basteln. Da ich aber nicht so fit bin wie andere (z.B. du) sind auch diese Fragen dann oft schon beantwortet (und meistens besser), bevor ich posten kann.
    Aber es macht hier einen Riesenspaß, und auch beim Nur mitlesen lerne ich viel dazu.

Und2, ja, wenn es beim Festplattenauslesen schnell gehen muß,
da es sonst zu lange dauert, benutze ich auch gerne das gute
alte Dos, also Dir.
Vba sowieso, aber sogar VB ist da langsamer, C o.ä. weiß ich
nicht.

Ich habe vor vielen Jahren, also es weder VB noch VBA gab, öfter mal was in C gemacht. Nach meinem Gefühl war es recht schnell, aber DOS war unschlagbar.

Gruß
Reinhard

Gruß zurück,
Andreas

PS. Ich tauche vermutlich demnächts öfter hier als Frager auf: Ich quäle mich gerade mit dem Umstieg von Excel 2003 nach 2010.

1 Like

Hallo Andreas,

nochmals viiiiiiiiiiieeeeeelen Dank für Deine Hilfe.

Ich habe die Ergebnisse Deines ersten Makros mit denen des zweiten Makros verglichen. Das zweite Makro hat leider nicht mehr gefunden als das erste. Dann habe ich mir das Makro genau angesehen. Ich bin VBA Anfänger. Jetzt bin ich mir aber nicht sicher, ob ich mich korrekt ausgedrückt hatte. Es geht nicht um das Wort „Musterordner“, sondern es war nur ein Beispiel. Was ich meinte war, das in der Exceltabelle in Spalte 1 verschiedene Wörter stehen können:
z.B.
Zeile 1: Neuer Ordner
Zeile 2: Musterordner
Zeile 3: Der schöne Tag
Zeite 4: Der erste Mai
Zeile 5: Blauerordner
Zeile 6: Sonntag

Die Ordner bzw. Unterordner bzw. Unterunterordner auf der Festplatte heißen z.B.

Neuer Ordner 01
Der Ornder sollte dann vom Makro als vorhanden gewertet werden.

01 Musterordner
Der Ordner sollte dann vom Makro als vorhanden gewertet werden.

Der schöne Tag.
Das wird sowieso von Deinem Makro gefunden und als vorhanden gewertet.

Der erste Mai ist frei.
Das sollte dann auch vom Makro als vorhanden gewertet werden.

Schöner Blauerordner
Das sollte dann auch vom Makro als vorhanden gewertet werden.

SONNTAG
Das sollte dann auch vom Makro als vorhanden gewertet werden.

Ich hoffe, ich habe mich jetzt verständlich ausgedrückt und Du hast auch weiterhin Lust mir zu helfen.

Viele Grüße

Birgit :smile:

1 Like

Hallo Birgit,

na, dann hier die dritte Version:
http://www.file-upload.net/download-4316745/OrdnerSu…
Ich hoffe es tut jetzt das, was du möchtest.

Grüße, Andreas

1 Like

Hallo Andreas,

super! Jetzt klappt es! :smile: *freu*hüpf*hüpf*freu*

Viiiiiiiiiieeeeeeeeeeeeeeeelen Dank für Deine Hilfe! :smile:

Ich hätte das sonst alles manuell vergleichen müssen. Durch Dich habe ich eine Menge Arbeit gespart!!! :smile:

Viele Grüße

Birgit :smile:

1 Like