Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Comboboxen in abhängikeit
#1
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
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#2
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
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
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.
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#4
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?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Hallo!

Ja so soll es sein!


Angehängte Dateien
.xls   Wartung.xls (Größe: 91 KB / Downloads: 13)
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#6
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
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#7
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.
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#8
Hallo Michael,

werden die Unterverzeichnisse da überhaupt eingelesen?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
Hallo Stefan!

Wenn ich das richtig gesehen habe werden keine Verzeichnisse eingelesen.
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top
#10
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
mfg
Michael
:98:

WIN 10  Office 2019
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste