Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhalt von vier ComboBoxen in Tabelle auslesen
vier
Guten Morgen allerseits,
ich möchte gerne anhand der ersten ComboBox1 mit Zahleneinträgen 1-50 bei Auswahl z.B. der Zahl 5 in Combobox1, dass die Zahl aus ComboBox1 und die Text/Zahleninhalte der ComboBoxen 2,3,4 in die erste Zeile des zweiten Tabellenblattes (Spalten 1,2,3,4) geschrieben werden. Sollte jetzt anschließend die Zahl 4 in ComboBox1 eingetragen werden und entsprechen wieder die ComboBoxen2,3,4 ausgewählt worden sein, so sollten die Einträge in Zeile 1 eingetragen werden und die alten Einträge in Zeile 2 rutschen. Wird eine Zahl aus ComboBox1 ausgewählt, die größer ist als die in Spalte 1 (Tabelle2) bisher aufgelisteten Einträge, so soll sie darunter eingetragen werden usw.
Ich habe hier mal ein Beispiel hochgeladen bei dem noch die besagte Sortierung der Einträge fehlt, bisher kopiert er nur die Auswahl in alle 50 Zeilen ?!
https://www.herber.de/bbs/user/65579.xls
Schöne Grüße, Dirk
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
05.11.2009 07:20:59
vier
Hallo Dirk,
mit der nachfolgenden Anpassung der Commandbutton-Prozedur wird immer jeweils eine Zeile EIngetragen.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim wks2 As Worksheet, ZeileLetzte As Long, maxEintrag As Long, Zeile As Long
Dim Auswahl As Integer
Set wks2 = Worksheets("Tabelle2")
'Referenzwerte in tabelle2 ermitteln
With wks2
ZeileLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
maxEintrag = Application.WorksheetFunction.Max(.Range(.Cells(1, 1), _
.Cells(ZeileLetzte, 1)))
End With
With Worksheets("Tabelle1")
'Einfügezeile ermitteln
Auswahl = Worksheets("Tabelle1").ComboBox1.Value
If IsEmpty(wks2.Cells(1, 1)) Then
'1. Eintrag in Tabelle
Zeile = 1
ElseIf Auswahl > maxEintrag Then
'Eintrag am Ende einfügen
Zeile = ZeileLetzte + 1
Else
'Zeile mit nächst höherer Nummer ermitteln
For Zeile = 1 To ZeileLetzte
If wks2.Cells(Zeile, 1) >= Auswahl Then
'Leerzeile einfügen
wks2.Rows(Zeile).Insert shift:=xlShiftDown
Exit For
End If
Next
End If
'Werte in Tabelle2 eintragen
wks2.Cells(Zeile, 1) = .ComboBox1.Value
wks2.Cells(Zeile, 2) = .ComboBox2.Text
wks2.Cells(Zeile, 3) = .ComboBox3.Text
wks2.Cells(Zeile, 4) = .ComboBox4.Text
'Nach Klick auf den Weiterbutton wird ComboBox1 um +1 erhöht
.ComboBox1.Value = .ComboBox1.Value + 1
.ComboBox2.Value = ""
.ComboBox3.Value = ""
.ComboBox4.Value = ""
End With
Application.Goto wks2.Cells(Zeile, 1)
End Sub

Anzeige
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
05.11.2009 12:28:06
vier
HI Franz,
vielen lieben Dank, ich habe noch eine Frage:
kann ich eine bestehende Zeile, in der bereits Einträge von ComboBox1.Value drinstehen, überschreiben?
Also unterteilen in
If wks2.Cells(Zeile, 1) > Auswahl Then
'Leerzeile einfügen
wks2.Rows(Zeile).Insert shift:=xlShiftDown
Exit For
End IF
If wks2.Cells(Zeile, 1) = Auswahl Then
'Zeile überschreiben
'mittels einer Replace-Funktion?
End If
Schöne Grüße,
Dirk
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
05.11.2009 13:56:06
vier
HI Franz,
vielen lieben Dank, ich habe noch eine Frage:
kann ich eine bestehende Zeile, in der bereits Einträge von ComboBox1.Value drinstehen, überschreiben?
Also unterteilen in

If wks2.Cells(Zeile, 1) > Auswahl Then
'Leerzeile einfügen
wks2.Rows(Zeile).Insert shift:=xlShiftDown
Exit For
End IF
If wks2.Cells(Zeile, 1) = Auswahl Then
'Zeile überschreiben
'mittels einer Replace-Funktion?
End If

Schöne Grüße,
Dirk
Anzeige
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
05.11.2009 19:00:43
vier
Wollte die Frage noch mal ins Gespräch bringen!
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
06.11.2009 01:04:44
vier
Hallo Dirk,
die Prüfung auf vorhandenen Wert muss in die For-Next-Schleife mit eingebaut werden. Ich hab noch eine Sicherheitsabfrage für das Überschreiben mit eingebaut.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim wks2 As Worksheet, ZeileLetzte As Long, maxEintrag As Long, Zeile As Long
Dim Auswahl As Integer
Set wks2 = Worksheets("Tabelle2")
'Referenzwerte in tabelle2 ermitteln
With wks2
ZeileLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
maxEintrag = Application.WorksheetFunction.Max(.Range(.Cells(1, 1), _
.Cells(ZeileLetzte, 1)))
End With
With Worksheets("Tabelle1")
'Einfügezeile ermitteln
Auswahl = Worksheets("Tabelle1").ComboBox1.Value
If IsEmpty(wks2.Cells(1, 1)) Then
'1. Eintrag in Tabelle
Zeile = 1
ElseIf Auswahl > maxEintrag Then
'Eintrag am Ende einfügen
Zeile = ZeileLetzte + 1
Else
'Zeile mit nächst höherer Nummer ermitteln
For Zeile = 1 To ZeileLetzte
If wks2.Cells(Zeile, 1) = Auswahl Then
'Eintrag ist bereits vorhanden
If MsgBox("lfd. Nr. """ & Auswahl & """ ist bereits vorhanden!" & vbLf & vbLf _
& "Spalte 2: " & wks2.Cells(Zeile, 2) & vbLf _
& "Spalte 3: " & wks2.Cells(Zeile, 3) & vbLf _
& "Spalte 4: " & wks2.Cells(Zeile, 4) & vbLf & vbLf _
& "Eintrag überschreiben?", vbQuestion + vbYesNo, "Eingabewerte übertragen") _
= vbNo Then
GoTo Beenden
Else
'vorhandenen Eintrag überschreiben
Exit For
End If
ElseIf wks2.Cells(Zeile, 1) > Auswahl Then
'Leerzeile einfügen
wks2.Rows(Zeile).Insert shift:=xlShiftDown
Exit For
End If
Next
End If
'Werte in Tabelle2 eintragen
wks2.Cells(Zeile, 1) = .ComboBox1.Value
wks2.Cells(Zeile, 2) = .ComboBox2.Text
wks2.Cells(Zeile, 3) = .ComboBox3.Text
wks2.Cells(Zeile, 4) = .ComboBox4.Text
'Nach Klick auf den Weiterbutton wird ComboBox1 um +1 erhöht
.ComboBox1.Value = .ComboBox1.Value + 1
.ComboBox2.Value = ""
.ComboBox3.Value = ""
.ComboBox4.Value = ""
End With
Application.Goto wks2.Cells(Zeile, 1)
Beenden:
End Sub

Anzeige
AW: Inhalt von vier ComboBoxen in Tabelle auslesen
06.11.2009 09:21:19
vier
Super! Vielen Dank, großartig!
Dirk

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige