Clever-Excel-Forum

Normale Version: Comboboxen in abhängikeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
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
Seiten: 1 2 3 4