Ordnernamen automatisch in Excel 2010 einlesen

hausel

Enthusiast
Thread Starter
Mitglied seit
21.04.2010
Beiträge
31
Tag zusammen,

ich habe eine ziemlich große Anzahl an DVD’s Zuhause (200 Stück) die sich über die Jahre angesammelt haben. Nun habe ich es geschafft alle meine Filme auf eine Festplatte zu sichern. Jeder einzelne Film steckt in einem Ordner. So sind es etwa 200 verschiedene Ordner.

Gerne würde ich mir jetzt eine Exceldatei anlegen welche in Spalte A die Ordnernamen enthält in Spalte B-E werde ich Informationen zu den Filmen eintragen. Soweit bin ich auch gekommen jedoch habe ich die Ordnernamen erst mit einem anderen Programm auslesen müssen, in eine .txt-Datei gespeichert und anschließen in Excel eingefügt.
Gerne würde ich diesen Zwischenschritt überspringen und die Ordnernamen direkt in Excel einlesen. Bzw. wenn neue Filme dazu kommen mit einem „aktualisieren Knopf“ die neuen Filme automatisch einlesen.
Und bitte spart euch „Du kannst Sie mit der Hand eintragen“. Auch wenn es kaum mehr Aufwand ist habe ich es einfach gern wenn alles automatisch und reibungslos funktioniert. Zudem ist dieses DVD Register und die Sicherung auf der Festplatte so ein kleines Projekt für dieses Jahr von mir. Deshalb hätte ich es gerne das alles genau nach meiner Vorstellung funktioniert.

Sollte es von Bedeutung sein, ich benutze Office 2010.

Wäre super wenn hier jemand eine Lösung parat hat bzw. ein Lösungsansatz nennt.
Grüße mirko „hausel“
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Es gibt 2 Möglichkeiten.

1.) Copy und Paste aber nicht jede Zeile einzeln sondern alles auf einmal. Dazu müsste der einzufügende Inhalt entsprechend mit Tabstops und Zeilenumbrüchen formatiert sein. Ließe sich aber problemlos mit Batch oder VBScript lösen.
2.) VBA in Excel. Das wäre dann wirklich nur noch ein Knopfdruck. Fraglich ist aber ob du in VBA an die nötigen Informationen rankommst. Pfad und Dateiname sind kein Problem aber ich vermute mal du willst auch noch diverse zusätzlichen Informationen auslesen. Könnte mit VBA eventuell schwierig werden.
 
nein Die Dateinamen reichen vollkommen. Alle anderen Infos trage ich selbst ein.

Nun habe ich mir ein VBA Skript gebastelt funktioniert auch schon recht gut. Einziges Problem:
Wenn ich einen neuen Ordner hinzufüge und das Skript nochmals ausführe Ordnet er mir den neuen Ordner automatisch alphabetisch ein. An sich auch nicht verkehrt. Jedoch verschieben sich dann sämtliche Infos. Sprich der neue Film taucht in der Liste auf bekommt aber die Informationen von dem Film der davor an seiner Stelle stand.

Sprich das Skript muss nicht nur den neuen Name hinzufügen sonder auch eine komplette Zeile.
Ich hoffe Ihr versteht was ich meine^^

Hier das VBA Skript:

Option Explicit

Sub Ordnername_einlesen()
Dim objFSO As Object
Dim objFolder As Object
Dim strPfad As String
Dim objSubfolder As Object, colSubfolders As Object
Dim i As Integer
i = 1
strPfad = "C:\Filme\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPfad)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder In colSubfolders

i = i + 1

Range("A" & i).Value = objSubfolder.Name
Next objSubfolder
Set objFolder = Nothing
Set colSubfolders = Nothing
Set objFSO = Nothing
End Sub
 
Wenn ich einen neuen Ordner hinzufüge und das Skript nochmals ausführe Ordnet er mir den neuen Ordner automatisch alphabetisch ein. An sich auch nicht verkehrt. Jedoch verschieben sich dann sämtliche Infos. Sprich der neue Film taucht in der Liste auf bekommt aber die Informationen von dem Film der davor an seiner Stelle stand.

Fast richtig. Das Script überschreibt in der 1. Zeile einfach alles. Wenn du also einen Ordner löscht, bekommst du ebenfalls Problem. Es wird nicht geprüft ob der Eintrag schon vorhanden ist oder nicht. Müsstest du noch einbauen.

Hab gerade keine Zeit zu testen. Sollte dann so aussehen.
Option Explicit

Sub Ordnername_einlesen()
Dim objFSO As Object
Dim objFolder As Object
Dim strPfad As String
Dim objSubfolder As Object, colSubfolders As Object
Dim i As Integer
i = 1
strPfad = "C:\Filme\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPfad)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder In colSubfolders

i = i + 1

if Range("A" & i).Value = objSubfolder.Name
then
nix machen weil schon da
else
zeile einfügen
Next objSubfolder
Set objFolder = Nothing
Set colSubfolders = Nothing
Set objFSO = Nothing
End Sub
 
hmm schade funktioniert nicht. Kann er irgendwie nicht compilieren.

---------- Beitrag hinzugefügt um 12:40 ---------- Vorheriger Beitrag war um 11:39 ----------

mit dem Löschen funktioniert das leider auch noch nicht wie gewollt :/

Wäre super wenn mir jemand helfen kann mein einfaches Skript zu bearbeiten.
Es sollte nun keine Probleme machen wenn Ordner hinzu kommen bzw. gelöscht werden. Ich denke so groß ist das Problem eig. nicht. Man muss eben nicht mit der einem Zelle arbeiten sondern mit der ganzen Spalte, oder sehe ich das falsch?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh