Hallo Leute!
In meiner User form sind 2 Comboboxen. Möchte gerne mit diesen Comboboxen eine Vorauswahl für Ordner treffen.
Für Combobox1 habe ich was gefunden und etwas angepasst, nur bei ComboBox2 komme ich nicht weiter.
Diese soll mir dann die weiteren Ordner anzeigen
Code:
Private Sub UserForm_Initialize()
Dim cFile As String
Dim iAtt As Variant
cFile = Dir("N:\Wartungspläne\", vbDirectory) ' Alle Ordner im Verzeichnis ausgeben
Do While cFile <> "" ' Wiederholen bis cFile=""
cFile = Dir ' Aufruf der Funktion ohne Parameter!!
iAtt = GetAttr("N:\Wartungspläne\" & cFile) ' Check ob cfile ein Ordner ist ..
If CBool(iAtt And vbDirectory) = True Then
cbDokument.AddItem cFile ' .. wenn ja dann zu Combobox hinzufügen
End If
Loop
cbDokument2.AddItem cFile
End Sub
Vielen Dank
Hallo,
vielleicht so?
Code:
Private Sub UserForm_Initialize()
Dim cFile As String
Dim iAtt As Variant
cFile = Dir("N:\Wartungspläne\", vbDirectory) ' Alle Ordner im Verzeichnis ausgeben
Do While cFile <> "" ' Wiederholen bis cFile=""
cFile = Dir ' Aufruf der Funktion ohne Parameter!!
iAtt = GetAttr("N:\Wartungspläne\" & cFile) ' Check ob cfile ein Ordner ist ..
If CBool(iAtt And vbDirectory) = True Then
cbDokument.AddItem cFile ' .. wenn ja dann zu Combobox hinzufügen
Else
cbDokument2.AddItem cFile
End If
Loop
' cbDokument2.AddItem cFile
End Sub
Hallo Stefan!
Danke für die schnelle Hilfe!
Nicht ganz.
Ich schreibe mal ein Pfad auf.
N\:Wartungspläne\Makita\Säge1\
In Combobox1 wird mir Makita angezeigt und in ComboBox2 sollte dann Säge1 zu sehen sein.
In dem Ordner Makita gibt es noch mehrere unter Ordner für verschiedene Maschinen.
Hallo Michael,
Du willst also prüfen, ob das Verzeichnis Wartungspläne weitere Ordner enthält und die sollen in die Combo1 eingetragen werden und danach, ob die Ordner weitere Unterordner enthalten und die sollen wiederum in die Combo2?
Hallo!
Ja so soll es sein!
Hallo Michael,
versuche es mal so (konnte ich nicht testen)
Code:
Private Sub UserForm_Initialize()
Dim cFile As String
Dim iAtt As Variant
Dim strOrdner() As String
Dim lngCounter As Long
cFile = Dir("N:\Wartungspläne\", vbDirectory) ' Alle Ordner im Verzeichnis ausgeben
Do While cFile <> "" ' Wiederholen bis cFile=""
cFile = Dir ' Aufruf der Funktion ohne Parameter!!
iAtt = GetAttr("N:\Wartungspläne\" & cFile) ' Check ob cfile ein Ordner ist ..
If CBool(iAtt And vbDirectory) = True Then
ReDim Preserve strOrdner(0 To lngCounter)
strOrdner(lngCounter) = cFile
lngCounter = lngCounter + 1
End If
Loop
For lngCounter = 0 To UBound(strOrdner)
If UBound(Split(strOrdner(lngCounter), "\")) = 2 Then
cbDokument.AddItem strOrdner(lngCounter)
Else
cbDokument2.AddItem strOrdner(lngCounter)
End If
Next lngCounter
End Sub
das Change-Ereignis solltest Du mal auskommentieren
Hallo Stefan!
Leider steht in der CB1 nichts mehr und in der CB2 das was vorher in der CB1 stand!
Suche grade auch woran es liegen könnte.
Hallo Michael,
werden die Unterverzeichnisse da überhaupt eingelesen?
Hallo Stefan!
Wenn ich das richtig gesehen habe werden keine Verzeichnisse eingelesen.
Hallo Leute!
Um nochmal alles durcheinnader zubringen, was ich gerne über User Form machen möchte.
Mit ComboBox1 Lese ich die Ordner von Laufwerk ?:\Wartungspläne\(AEG;Bosch;Makita;usw.(DIR)) ein, diese stehen dann in CB1 darin.
Dann wählt mann aus der CB1 etwas aus z.B. AEG
Mit ComboBox2 wählt man dann den nächsten unter Ordner aus.
dies wäre vieleicht Säge 1; Akku 1; usw.(DIR) jenach dem was darunter steht.
Testen tu ich das in mit einen USB Stick (so hab ich ein anderes Laufwerk)
Ich hoffe Stefan kann noch was aus seinen Ärmel ZAUBERN :100: oder ein anderer :16: .
Vielen Dank!
Für alle Hinweise und anregungen.
Ach so HERBER hat so etwas mal in Excel gemacht mit drei CB's (aber nur für eine Tabelle)dies kann ich aber leider nicht so richtig umsetzen!
:22: Das ist was ich im Netz gefunden habe, der rest ist über VBA NICHT EXCEL