Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
892to896
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
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
daten aus sheet in treeview einfügen
31.07.2007 11:48:37
jimmi4u
hallo @all,
Ich habe wiedermal ein Problem und hoffe, dass ihr mir da weiterhelfen könnt.
Ich habe ein Sheet, in dem in der ersten Spalte sich eine Verzeichnisstruktur befindet. (Ordnernamen, Unterordner und die Dateien mit dem vollen Pfad). Jetzt gilt es diese in einer Art Ordnerstruktur (explorer like) in einem Treeview überzuführen.
root
--Ordner1
--Unterordner1
--Dateien
--Unterordner1-1
-- dateien1-1
-- etc.
--Unterordner2
-- etc.
-- etc..
--Ordern2
e:\Verzeichnis alt\1112101\Ordner1
e:Verzeichnis alt\1112101\Ordner1\Unterordner1
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Datei.txt
----
e:\Verzeichnis alt\1112101\Ornder2
---
e:\Verzeichnis alt\1112101\ordner2\Datei2-1.dat
--
Ich offe ich habe mein Problem halbewgs verständlich geschildert und hoffe auf etwas hilfe.
Danke schon mal im voraus.
Paul
..

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mehr details bitte...
31.07.2007 11:54:00
sergiesam
Hi,
lade mal eine Datei hoch, in der die Daten in der Spalte zu sehen sind.
in dieser Schreibweise lässt sich nämlich nicht abbilden, wer Vater und wer Sohn im Tree ist.
z.B. "--" bedeuten unterstruktur - das würde schon reichen.
Root
--Unterordner1
----Dateiname
--Unterordner2
----Dateiname
----Dateiname
oder so ähnlich - wie sehen die Daten tatsächlich aus?
sam

AW: mehr details bitte...
31.07.2007 13:28:54
jimmi4u
Danke für die schnelle Antwort,
Ok ich probier es nochmal:
So soll der Baum aussehen:
root(1112101) - Vater ;)
--Ordner1 - Mutter
---Unterordner1 - Kind1
----Dateien1
...
----Unterordner1-1 - Kind2
-----Dateien1-1
...
----Unterordner1-2 - Kind 3
-----Dateien1-2
..
----Unterordner1-3 - Kind 4
...
---dateienimOrdner1
...
...
--Ordner2
---DateinimOrdner2
---Unterordner1
----Dateien2-1
----Unterordner1-2
-----Unterordner1-2-1
------Dateien im Unterordner1-2-1
(Unterordner beliebig tief bzw. bis 255 Zeichen)
...
"--" bedeutet Unterstruktur
die Daten im sheet sehen dann so aus:
e:\Verzeichnis alt\1112101\Ordner1
e:Verzeichnis alt\1112101\Ordner1\Unterordner1
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Datei.txt
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-1-1
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-1-1\Datei.txt
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-1-2
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-1-2\Datei1.txt
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-1-2\Datei2.txt
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-2
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-2\Unterordner1-2-1
e:\Verzeichnis alt\1112101\Ordner1\Unterordner1\Unterordner1-1\Unterordner1-2-1\Datei.txt
...
e:\Verzeichnis alt\1112101\Ornder2
...
e:\Verzeichnis alt\1112101\ordner2\Datei2-1.dat
...
Ornder3 , etc.
sind ca. 4000 Einträge(also Ordner, Unterordner, UnterUnterordner, Dateien, etc)
Der User suchts sich im vorhinein das root Verzeichnis aus. In dem Fall ist es 1112101. das sheet wird mit den Pfaden von allen sich darin befindlichen Dateien und Ordnern befüllt.
wie gesagt, die Tiefe der Verzeichnisse ist beliebig, der Pfad übersteigt aber keine 255 Zeichen. (das ist auch glaub ich die Begrenzung von Windows)
Ich hoffe, die Problemstellung ist gelungen und hoffe auch, dass die Lösung nicht allzu schwierig ausfällt.
Danke nochmal,
Paul

Anzeige
AW: mehr details bitte...
31.07.2007 14:01:00
jimmi4u
oder besteht die Möglichkeit das treeview direkt aus dem Ordnerauwahldialog mit den Kurzpfaden von den Unterordneren und Dateien zu füllen. Da würde ich mir das befüllen der sheet ersparren?
nochmals danke für die Bemühungen,
paul

AW: mehr details bitte...
31.07.2007 15:26:08
jimmi4u
hmmpf, der liefert mir da bei
Private Sub SubTreeAufbauen(fld As Folder)
Dim n As Node
Dim unterordner As Folder
Dim f As File
Set n = Me.TreeView1.Nodes.Add(fld.ParentFolder.Path, tvwChild, fld.Path, fld.Name)
die fehlermeldung Element nor Found: laufzeitfehler: 35601
hab dein code einfach copied und pasted, und die Pfadeingabe eingestellt. Das schlimme ist ja das, es sind alle Variablen mit den richtigen Werten belegt?
Bitte einmal noch um hilfe,
danke danke,
Paul
sagst mir deine Adresse wo ich das Bier hinliefern soll *gg*

Anzeige
AW: mehr details bitte...
31.07.2007 16:12:44
jimmi4u
hier der code meiner userform:

Private Sub ComboBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
call TreeAufbauen( Laufwerk())
Application.ScreenUpdating = True
End Sub


Function Laufwerk() As String
Laufwerk = GetDirectory("Hir das Verzeichnis mit der Wirtschaftseinheit eintragen")
If Laufwerk = "" Then Exit Function
If Right(Laufwerk, 1) "\" Then Laufwerk = Laufwerk + "\"
End Function



Private Sub TreeAufbauen(vollständigerPfad As String)
Dim fso As New FileSystemObject, fld As Folder, n As Node, unterordner As Folder, f As File
Me.TreeView1.Nodes.Clear
Set fso = New FileSystemObject
Set fld = fso.GetFolder(vollständigerPfad)
Set n = Me.TreeView1.Nodes.Add(, , vollständigerPfad, vollständigerPfad)
n.Expanded = True
For Each unterordner In fld.SubFolders
Call SubTreeAufbauen(unterordner)
Next unterordner
For Each f In fld.Files
Call Me.TreeView1.Nodes.Add(vollständigerPfad, tvwChild, f.Path & f.Name, f.Name)
Next f
End Sub


Sub SubTreeAufbauen(fld As Folder)
Dim n As Node
Dim unterordner As Folder
Dim f As File
Set n = Me.TreeView1.Nodes.Add(fld.ParentFolder.Path, tvwChild, fld.Path, fld.Name)
For Each unterordner In fld.SubFolders
DoEvents
SubTreeAufbauen unterordner
Next unterordner
For Each f In fld.Files
Call Me.TreeView1.Nodes.Add(fld.Path, tvwChild, f.Path & f.Name, f.Name)
Next f
End Sub


Bitte um Hilfe!!
Paul

Anzeige
Unterschiede in der Schreibweise...
31.07.2007 16:41:00
sergiesam
Hi,
fld.path gibt den Pfad ohne abschließendem "\" an. auch Groß/Kleinschreibung könnte sich negativ auswirken.
mit dem unten angeführten Code sind diese Fehler behoben - uCase macht immer Großbuchstaben und der erste Root-Ordner wird nicht mehr durch den angebenen Pfad sondern durch fld.Path dieses Pfades angegeben, damit sind alle Schreibweisen gleich...
lg,
Sam

Private Sub TreeAufbauen(vollständigerPfad As String)
Dim fso As New FileSystemObject, fld As Folder, n As Node, unterordner As Folder, f As File
Me.TreeView1.Nodes.Clear
Set fso = New FileSystemObject
Set fld = fso.GetFolder(vollständigerPfad)
Set n = Me.TreeView1.Nodes.Add(, , UCase(fld.Path), vollständigerPfad)
n.Expanded = True
For Each unterordner In fld.SubFolders
Call SubTreeAufbauen(unterordner)
Next unterordner
For Each f In fld.Files
Call Me.TreeView1.Nodes.Add(UCase(vollständigerPfad), tvwChild, f.Path & f.Name, f.Name)
Next f
End Sub


Sub SubTreeAufbauen(fld As Folder)
Dim n As Node
Dim unterordner As Folder
Dim f As File
Set n = Me.TreeView1.Nodes.Add(UCase(fld.ParentFolder.Path), tvwChild, UCase(fld.Path), fld.Name)
For Each unterordner In fld.SubFolders
DoEvents
SubTreeAufbauen unterordner
Next unterordner
For Each f In fld.Files
Call Me.TreeView1.Nodes.Add(UCase(fld.Path), tvwChild, UCase(f.Path & f.Name), f.Name)
Next f
End Sub


Anzeige
AW: Unterschiede in der Schreibweise...
31.07.2007 19:35:17
Paul
danke, danke. ihr seid echt die ALLERBESTEN.
danke (habe ich mich schon eigentlich bedankt?) DANKE VIELMALS
Paul

AW: mehr details bitte...
31.07.2007 16:18:06
Bernd
Hallo jimmi4u,
habe nur etwas von Daten und Stammbaum gelesen. Hier mal eine Datei aus meinem Fundus - habe ich nicht selber gemacht, da ich von VBA leider keine Ahnung habe, aber vielleicht hilft's Dir weiter:
https://www.herber.de/bbs/user/44631.xls
Die Datei ist von Bert Körn - an dieser Stelle nochmals vielen Dank, konnte ich auch schon gut gebrauchen!
Sag' mal bitte Bescheid, ob Du etwas damit anfangen konntest.
Gruß Bernd

Anzeige
AW: mehr details bitte...
31.07.2007 16:18:00
sergiesam
hi,
hmmm... Schwer jetzt hier eine Fehleranalyse zu machen...
Element not found heißt hier, dass fld.ParentFolder.path (also der Vaterkey) nicht existiert. Du kannst ja mal fld.parentfolder.path markieren und "Debuggen" "Überwachung hinzufügen" klicken. dann siehst du, welchen Knoten er erwartet.
Ist dir der Code ungefähr klar? Ich habe deine Anmerkung übernommen, dass du die Ordner nicht extra ins Excel übernehmen musst, sondern dass er direkt auf das Verzeichnis zugreift.
du kannst ja meine Mustermappe mal direkt starte und als Verzeichnis "C:\Windows" angeben - beim Windowsverzeichnis dauert es halt ziemlich lange, bis er fertig ist.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige