Kombinationsfeld abhängig von Kombinationsfeld
Hallo zusammen
Ich versuche gerade mit mehreren Kombinationsfeldern zu arbeiten.
Ich möcht erreichen, dass mein 2. Kombinationsfeld in abhängigkeit von 1. Kombinationsfeld die Werte von Spalte C, D, E, oder F anzeigt.
genauer, wenn im Kombinationsfeld 1 der erste Text ausgewählt wird sollen im 2. Kombinationsfeld nur die Texte aus Spalte C erscheinen. Diese sollen dann angewählt werden können und eine Zelle soll dann den entsprechenden wert erhalten.
Ist sowas überhaupt realisierbar?
Wenn ja, wie?
Ich hoffe, dass ich mein Problem genau genug erläutern konnte.
vorab schonmal vielen Dank ,
noc
Antwort schreiben
Antwort 2 von noc vom 06.08.2020, 14:08 Options
Danke schonmal,
aber leider kann ich dass so nicht machen.
Die Kombinationsfelder sind pflicht.
Wenn also jemand noch eine Lösung hat wäre ich echt dankbar.
Gruß, noc
Antwort 3 von M.O. vom 06.08.2020, 15:52 Options
Hallo,
hier ein
Beispiel, das dir sicher helfen wird.
Gruß
M.O.
Antwort 4 von noc vom 07.08.2020, 13:55 Options
JA super,
vielen vielen Dank.
Ich hab nur so lange für ne Antwort gebraucht, weil ich noch Excel 97 auf meinem Rechner hab und mit dem funktioniert dieses Makro nicht.
Aber ab 2000 gehts astrein!
also nochmal, vielen Dank
Antwort 5 von noc vom 07.08.2020, 14:40 Options
So, jetzt hab ich doch noch eine Frage,
wenn ich jetzt den Wert den meine Auswahl ergeben hat in Tabelle 1 übertragen will, kommt bei mit immer Debugg-Fehler.
Ich hab einfach an das Ende des Codes,
Sheets("Daten").Cells(Wiederholungen, 5).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("G4").Select
ActiveSheet.Paste
angehängt.
Leider ist das wohl nicht richtig.
kann mir da bitte nochmal wer helfen??
Schönen Dank, noc
Antwort 6 von M.O. vom 07.08.2020, 16:26 Options
Hallo,
dein Code sollte soweit man das nachvollziehen kann eigentlich funktionieren.
Die kurze Version zu deinem Codeteil lautet so:
Sheets("Tabelle1").Range("G4") = Sheets("Daten").Cells(Wiederholungen, 5)
Ansonsten wäre es sinnvoll, wenn du den ganzen Code mal postest oder eine Beispieldatei hochlädst.
Gruß
M.O.
Antwort 7 von noc vom 11.08.2020, 08:17 Options
Ok, hier ist der gesamte Code.
wenn ich das Programm in Einzelschritten ablaufen lasse bleibt es immer bei Zeile
Sheets("Tabelle1").Range("G4") = Sheets("Daten").Cells(Wiederholungen, 5)
hängen und bringt mir einen Debugg fehler.
Was mache ich falsch?
Vielen Dank, NOC
Public Auswahl1 As String, Auswahl2 As String, Auswahl3 As String
Private Sub ComboBox1_GotFocus()
'***************************************************************************
'Bei Eingabefokus der ComboBox1
'***************************************************************************
Dim Wiederholungen As Integer
'Alle Einträge in der Combobox löschen
ComboBox1.Clear
'sichtbaren Eintrag in der Combobox löschen
ComboBox1.Text = ""
'For/Next Schleife um Combobox mit den Einträgen aus Blatt "Daten" Spalte A
'ohne Duplicat zu füllen.
For Wiederholungen = 2 To Worksheets("Daten").Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Worksheets("Daten"). _
Range("A2:A" & Wiederholungen), Worksheets("Daten"). _
Cells(Wiederholungen, 1)) = 1 Then _
ComboBox1.AddItem Worksheets("Daten").Cells(Wiederholungen, 1)
Next Wiederholungen
End Sub
Private Sub ComboBox1_Change()
'***************************************************************************
'Bei Änderung der ComboBox1
'***************************************************************************
Dim Wiederholungen As Integer
'Alle Einträge in der Combobox löschen
ComboBox2.Clear
'Sichtbaren Eintrag in der Combobox löschen
ComboBox2.Text = ""
'Letzte beschriebene Zeile in Blatt Daten ermitteln
Letzte_Zeile = Sheets("Daten").Range("A65536").End(xlUp).Row
'Ausgewählter Eintrag aus der Combobox in Variable "Auswahl1"
'schreiben
Auswahl1 = ComboBox1.Text
'For/Next Schleife um Combobox mit den Einträgen aus Blatt "Daten"
'Spalte B ohne Duplikat zu füllen.
For Wiederholungen = 2 To Letzte_Zeile
'Wenn der ausgewählte Begriff = dem Eintrag in Spalte A in der Zeile,
'die durch die For/Next Schleife angesprochene Zeile dann...
If Sheets("Daten").Cells(Wiederholungen, 1) = Auswahl1 Then
'...Eintag aus Blatt "Daten" Spalte B der durch die For/Next Schleife
'angesprochenen Zeile in Spalte IV kopieren
Sheets("Daten").Cells(Wiederholungen, 2).Copy Cells(Wiederholungen, 256)
'Duplikate löschen
If WorksheetFunction.CountIf(Range("IV2:IV" & Wiederholungen), _
Cells(Wiederholungen, 256)) = 1 Then _
'Werte in ComboBox eintragen
With ComboBox2
.AddItem Sheets("Daten").Cells(Wiederholungen, 2)
End With
End If
End If
'Nächster Schleifendurchlauf
Next Wiederholungen
'Daten in Spalte IV löschen
Range("IV2:IV" & Letzte_Zeile).ClearContents
End Sub
Private Sub ComboBox2_Change()
'***************************************************************************
'Bei Änderung der ComboBox2
'***************************************************************************
Dim Wiederholungen As Integer
'Alle Einträge in der Combobox löschen
ComboBox3.Clear
'Sichtbaren Eintrag in der Combobox löschen
ComboBox3.Text = ""
'Letzte beschriebene Zeile in Blatt Daten ermitteln
Letzte_Zeile = Sheets("Daten").Range("A65536").End(xlUp).Row
'Ausgewählter Eintrag aus der Combobox in Variable "Auswahl1"
'schreiben
Auswahl2 = ComboBox2.Text
'For/Next Schleife um Combobox mit den Einträgen aus Blatt "Daten"
'Spalte B ohne Duplikat zu füllen.
For Wiederholungen = 2 To Letzte_Zeile
'Wenn der ausgewählte Begriff = dem Eintrag in Spalte B in der Zeile,
'die durch die For/Next Schleife angesprochene Zeile und
'der ausgewählte Begriff aus der Combobox1 = dem Eintrag in Spalte A
'in der Zeile, die durch die For/Next Schleife angesprochene Zeile dann...
If Sheets("Daten").Cells(Wiederholungen, 2) = Auswahl2 And _
Sheets("Daten").Cells(Wiederholungen, 1) = Auswahl1 Then
'...Eintag aus Blatt "Daten" Spalte B der durch die For/Next Schleife
'angesprochenen Zeile in Spalte IV kopieren
Sheets("Daten").Cells(Wiederholungen, 3).Copy Cells(Wiederholungen, 256)
'Duplikate löschen
If WorksheetFunction.CountIf(Range("IV2:IV" & Wiederholungen), _
Cells(Wiederholungen, 256)) = 1 Then _
'Werte in ComboBox eintragen
With ComboBox3
.AddItem Sheets("Daten").Cells(Wiederholungen, 3)
End With
End If
End If
'Nächster Schleifendurchlauf
Next Wiederholungen
'Daten in Spalte IV löschen
Range("IV2:IV" & Letzte_Zeile).ClearContents
End Sub
Private Sub ComboBox3_Change()
'***************************************************************************
'Bei Änderung der ComboBox3
'***************************************************************************
Dim Wiederholungen As Integer
'Alle Einträge in der Combobox löschen
ComboBox4.Clear
'Sichtbaren Eintrag in der Combobox löschen
ComboBox4.Text = ""
'Letzte beschriebene Zeile in Blatt Daten ermitteln
Letzte_Zeile = Sheets("Daten").Range("A65536").End(xlUp).Row
'Ausgewählter Eintrag aus der Combobox in Variable "Auswahl1"
'schreiben
Auswahl3 = ComboBox3.Text
'For/Next Schleife um Combobox mit den Einträgen aus Blatt "Daten"
'Spalte B ohne Duplikat zu füllen.
For Wiederholungen = 2 To Letzte_Zeile
'Wenn der ausgewählte Begriff = dem Eintrag in Spalte C in der Zeile,
'die durch die For/Next Schleife angesprochene Zeile und
'der ausgewählte Begriff aus der Combobox2 = dem Eintrag in Spalte B
'in der Zeile, die durch die For/Next Schleife angesprochene Zeile und
'der ausgewählte Begriff aus der Combobox1 = dem Eintrag in Spalte A
'in der Zeile, die durch die For/Next Schleife angesprochene Zeile dann...
If Sheets("Daten").Cells(Wiederholungen, 3) = Auswahl3 And _
Sheets("Daten").Cells(Wiederholungen, 2) = Auswahl2 And _
Sheets("Daten").Cells(Wiederholungen, 1) = Auswahl1 Then
'...Eintag aus Blatt "Daten" Spalte B der durch die For/Next Schleife
'angesprochenen Zeile in Spalte IV kopieren
Sheets("Daten").Cells(Wiederholungen, 4).Copy Cells(Wiederholungen, 256)
'Duplikate löschen
If WorksheetFunction.CountIf(Range("IV2:IV" & Wiederholungen), _
Cells(Wiederholungen, 256)) = 1 Then _
'Werte in ComboBox eintragen
With ComboBox4
.AddItem Sheets("Daten").Cells(Wiederholungen, 4)
End With
End If
End If
'Nächster Schleifendurchlauf
Sheets("Tabelle1").Range("G4") = Sheets("Daten").Cells(Wiederholungen, 5)
Next Wiederholungen
'Daten in Spalte IV löschen
Range("IV2:IV" & Letzte_Zeile).ClearContents
End Sub