Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verschachteltes Speichern mit ComboBox_Exit

Verschachteltes Speichern mit ComboBox_Exit
Holger
Guten Morgen,
meine UserForm beinhaltet verschiedenen ComboBoxen. In den ComboBoxen kann man endweder etwas auswählen oder etwas eingeben, was dann beim Verlassen dieser automatisch in die Auswahlliste für zukünftige Aufrufe gespeichert wird.
Jetzt möchte ich, dass nach einer Texteingabe (also nicht Auswahl) in ComboBox3 nicht nur diese Eingabe gespeichert wird, sondern in die Spalte daneben auch eine Ordnungszahl. Diese wiederum ist abhängig von der Auswahl in ComboBox2.
Ablaufbeispiel:
Ich wähle in ComboBox2 einen uniquen Eintrag aus. Die vorgegeben Auswahliste steht in Spalte C. In der Spalte B daneben stehen unique Ordnungszahlen.
Wenn ich Anschließend etwas neues in ComboBox3 (Auswahlliste steht in Spalte E) eintrage, wird die Auswahlliste in Spalte E automatisch um diesen Eintrag verlängert. In Spalte D direkt daneben soll jetzt aber auch die Ordnungszahl aus Spalte A der ComboBox2-Auswahl gespeichert werden.
Das habe ich bis jetzt dafür zusammen:
Private Sub ComboBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim X As Long
For X = 0 To ComboBox2.ListCount - 1
If ComboBox2.Value = ComboBox2.List(X) Then GoSub fuellen
Next
With Sheets("Vorgaben")
.Cells(1000, 3).End(xlUp).Offset(1, 0) = ComboBox2.Text
ComboBox2.AddItem ComboBox2.Value
End With
Exit Sub
fuellen:
ComboBox3.Clear
ComboBox4.Clear
Dim iZeile As Long
With Worksheets("Vorgaben")
For iZeile = 2 To .Range("D65536").End(xlUp).Row
If .Cells(iZeile, 4) = .Cells(ComboBox2.ListIndex + 2, 2) Then
ComboBox3.AddItem .Cells(iZeile, 5)
ComboBox4.AddItem .Cells(iZeile, 7)
End If
Next iZeile
End With
Exit Sub
Return
End Sub
Private Sub ComboBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim X As Long
For X = 0 To ComboBox3.ListCount - 1
If ComboBox3.Value = ComboBox3.List(X) Then _
Exit Sub
Next
With Sheets("Vorgaben")
.Cells(1000, 5).End(xlUp).Offset(1, 0) = ComboBox3.Text
ComboBox3.AddItem ComboBox3.Value
End With
End Sub
Wie bekomme ich es hin, dass mit einem neuen Eintrag in ComboBox3 nicht nur dieser in Spalte D gespeichert wird, sondern auch die Ordnungsnummer aus Spalte A in Spalte C?
Für Vorschläge wäre ich sehr dankbar.
Schöne Grüße
Holger

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Verschachteltes Speichern mit ComboBox_Exit
30.04.2010 15:10:34
fcs
Hallo Holger,
ich sehe da 2 grundsätzliche Möglichkeiten:
1. Du machst deine ComboBox2 2-spaltig.
In der 1. (oder genauer 0.) Spalte liest du per AddItem-Methode die Auswahltexte ein. In der folgenden Zeile liest du dann die OrdnungsNummer in die 2. (genauer 1.) Spalte ein.
    sText = ComboBox2.Text
With Sheets("Vorgaben")
Zeile = .Cells(1000, 3).End(xlUp).Offset(1, 0).Row
.Cells(Zeile, 3) = sText
vOrdnungsnummer = .Cells(Zeile, 1) 'Wert in Spalte A
End With
With ComboBox2
.AddItem sText
.List(.ListCount, 1) = vOrdnungsnummer
End With

Wenn du den NeuenWert Combobox3 einträgst, dann trägst du die Ordnungszahl aus Combobox2 mit ein.
'Combobox3 Auswahl eintragen + Ordnungsnummer
With Sheets("Vorgaben")
'nächste Zeile in Spalte E
Zeile = .Cells(1000, 5).End(xlUp).Offset(1, 0).Row
.Cells(Zeile, 5) = ComboBox3.Text 'Wert eintragen in Spalte E
.Cells(Zeile, 4) = Combobox2.List(Combobox2.ListIndex, 1) 'ordnungsnummer in Spalte D
ComboBox3.AddItem ComboBox3.Value
End With
2. Methode:
'Wert der Combobox2 in Spalte C suchen und Ordnungsnummer aus linker nachbarzelle übernehmen
'Combobox3 Auswahl eintragen + Ordnungsnummer
Dim Zelle As Range
With Sheets("Vorgaben")
'nächste Zeile in Spalte E
Zeile = .Cells(1000, 5).End(xlUp).Offset(1, 0).Row
.Cells(Zeile, 5) = ComboBox3.Text 'Wert eintragen in Spalte E
'Wert der Combobox2 in Spalte C suchen
Set Zelle = .Columns(3).Find(What:=Combobox2.Value, LookIn:=xlValues, _
lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox "Wert aus Combobox2 in Spalte C nicht gefunden"
Else
'ordnungsnummer in Spalte D eintragen
.Cells(Zeile, 4) = Zelle.Offset(0, -1)
End If
ComboBox3.AddItem ComboBox3.Value
End With

Die 2. Methode dürfte etwas einfacher umzusetzen sein.
Gruß
Franz
Anzeige
AW: Verschachteltes Speichern mit ComboBox_Exit
03.05.2010 07:05:34
Holger
Hallo Franz,
die 2. Methode ist das, was ich gesucht habe. Vielen Dank!
Gruß Holger
PS: Werde die 1. Methode mal ausprobieren, da ich mir das Ergebnis noch nicht so recht vorstellen kann ;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige