Anzeige
Archiv - Navigation
1660to1664
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

Prüfung in Combobox

Prüfung in Combobox
30.11.2018 09:55:59
Peter
Hallo ihr Excelspezialisten,
ich habe im Archiv einen Code gefunden, welcher einwandfrei funktioniert bis auf eine Kleinigkeit. Die Lösung hierfür finde ich leider nicht.
Deshalb bitte ich euch mir hierbei zu helfen.
Private Sub ComboBox2_Change()
Dim arrList(), rngC As Range, j As Integer, n As Integer
ReDim arrList(1 To WorksheetFunction.CountIf(Columns(3), ComboBox2.Value), 1 To 3)
For Each rngC In Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 2) = ComboBox2.Value Then
n = n + 1
For j = 0 To 2
arrList(n, j + 1) = rngC.Offset(, j)
Next
End If
Next
With ListBox1
.ColumnCount = 5
.ColumnWidths = "4cm;4cm;4cm;4cm;4cm"
.List = arrList
End With
End Sub
Das Problem: Wenn der Wert der Combobox nicht vorhanden ist, dann soll eine Meldung in Label10.Caption="Wert nicht vorhanden" erscheinen und ExitSub erfolgen.
Besten Dank für eure Hilfe.
Gruss
Peter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung in Combobox
30.11.2018 10:02:38
ede
Hallo Peter,
dann bau das im else Zweig ein:

If rngC.Offset(, 2) = ComboBox2.Value Then
n = n + 1
For j = 0 To 2
arrList(n, j + 1) = rngC.Offset(, j)
Next
else
Label10.Caption="Wert nicht vorhanden"
End If

gruss
ede
AW: Prüfung in Combobox
30.11.2018 10:11:41
Peter
Hallo Ede,
besten Dank für Deine Hilfe, aber leider ohne Erfolg.
Der Fehler taucht bereits bei der Zeile "ReDim arrList(1 To WorksheetFunction.CountIf(Columns(3), ComboBox2.Value), 1 To 3)" auf.
Fehlermeldung Index ausserhalb gültigen Bereichs.
Da muss irgendetwas rein wie if ListboxIndex nicht dann
Gruss
Peter
Anzeige
AW: Prüfung in Combobox
30.11.2018 10:13:50
ede
Hallo noch mal,
ich hab dich (glaub ich) falsch verstanden, versuch mal sorum:

Private Sub ComboBox2_Change()
Dim arrList(), rngC As Range, j As Integer, n As Integer
ReDim arrList(1 To WorksheetFunction.CountIf(Columns(3), ComboBox2.Value), 1 To 3)
n = 0
For Each rngC In Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 2) = ComboBox2.Value Then
n = n + 1
For j = 0 To 2
arrList(n, j + 1) = rngC.Offset(, j)
Next
End If
Next
if n = 0 then
Label10.Caption = "Wert " & ComboBox2.Value & " nicht vorhanden"
exit sub
end if
With ListBox1
.ColumnCount = 5
.ColumnWidths = "4cm;4cm;4cm;4cm;4cm"
.List = arrList
End With
End Sub

Anzeige
AW: Prüfung in Combobox
30.11.2018 10:16:21
Peter
Hallo ede,
leider nicht gleicher Fehler.
Gruss
Peter
AW: Prüfung in Combobox
30.11.2018 10:33:53
ede
Hallo,
ein Beispiel, was in der Combobox stehen könnte, wäre nicht schlecht.
dann prüf vor dem ReDim arrList, ob in ComboBox2.Value ein gültiger Wert ist.
gruss
ede
AW: Prüfung in Combobox
30.11.2018 10:39:28
Peter
hallo Ede,
es ist völlig egal was da drin steht.
In der Spalte C stehen diverse Namen: z. B. Hund und Katze
In der Combobox stehen Hund Katze und Maus.
Wenn nun nach jetzigem Code Hund oder Katze ausgewählt werden, wird Listbox entsprechend dem Wert ausgefüllt. Wird jedoch in Combobox Maus ausgewählt, erfolgt die Fehlermeldung.
Ich hoffe Du kannst mit diesen Angaben etwas anfangen.
Ich komme nicht auf die Lösung.
Besten Dank
Gruss
Peter
Anzeige
AW: Prüfung in Combobox
30.11.2018 10:44:50
ede
Hallo nochmal,
das Problem ist, das dann die Funktion "WorksheetFunction.CountIf(Columns(3), ComboBox2.Value), " den Wert NULL zurückliefert und damit kommt REDIM nicht klar.

if WorksheetFunction.CountIf(Columns(3), ComboBox2.Value) = 0 then
Label10.Caption = "Wert " & ComboBox2.Value & " nicht vorhanden"
exit sub
else
ReDim arrList(1 To WorksheetFunction.CountIf(Columns(3), ComboBox2.Value), 1 To 3)
end if

AW: Prüfung in Combobox erledigt
30.11.2018 10:48:55
Peter
Hallo Ede,
das ist die Lösung. Nochmals besten Dank für Deine Hilfe.
Gruss
Peter
AW: Werte aus Listbox in Tabelle
30.11.2018 12:09:08
Peter
Hallo Ede,
mittels dem von Dir geänderten Code werden die ausgewählten Daten in die Listbox übertragen.
Nun wähle ich auf der Listbox (multiselect) Daten aus. Diese werden in eine andere Tabelle2 übertragen.
Nun benötige ich aber noch einen Code, mit welchem ich in die Spalte E bei den gewählten Zeilen ein X in die Zelle einfüge.
Mit nachstehendem Code wird jedoch der gewählte Bereich nicht berücksichtigt.
Private Sub CommandButton5_Click()
With Me.ListBox1
For j = 1 To .ListCount - 1
If .Selected(j) Then
Cells(j + 1, 3) = "X"
.List(j, 2) = "X"
Else
Cells(j + 1, 3) = Empty
.List(j, 2) = Empty
End If
Next j
End With
End Sub
Kannst Du mir bitte helfen, dass ich das x bei jeden gewählten Zeile gesetzt bekomme.
Besten Dank
Gruss
Peter
Anzeige
AW: Werte aus Listbox in Tabelle
04.12.2018 19:05:00
Piet
Hallo Peter
die Lösung ist in deinem Code klar eresichtlich, wahrscheinlich erkennst du sie bloss nicht. -
Cells(j + 1, 3) = "X" heisst, in Zeile (ab zwei) der Spalte "C" = 3.Spalte wird ein X eingetragen
Für Spalte E muss Cells geaendert werden auf: - Cells(j + 1, 5) = "X". Dann sollte es klappen.
Befindet sich diese Zelle in einem anderen Blatt must du die Tabelle mit angeben: - Worksheets("xxx").Cells(j + 1, 5) = "X"
Vielleicht hilft dir der Tipp den Code selbst zu aendern. Könnte dann wie unten aussehen.
mfg Piet
Private Sub CommandButton5_Click()
With Me.ListBox1
For j = 1 To .ListCount - 1
If .Selected(j) Then
Cells(j + 1, 3) = "X"
.List(j, 2) = "X"
Worksheets("xxx").Cells(j + 1, 5) = "X"
Else
Cells(j + 1, 3) = Empty
.List(j, 2) = Empty
Worksheets("xxx").Cells(j + 1, 5) = Empty
End If
Next j
End With
End Sub

Anzeige
AW: Werte aus Listbox in Tabelle erledigt
05.12.2018 07:33:57
Peter
Hallo Piet,
besten Dank. Habe den Code bereits geändert. Funktioniert einwandfrei.
Gruss
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige