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
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
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?
13.06.2016, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2016, 14:19 von Steffl.
Bearbeitungsgrund: Text ergänzt
)
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 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