HERBERS Excel-Forum - das Archiv

Thema: ComboBox Markieren

ComboBox Markieren
Daniel Eberhard
Guten Abend

Ich fülle eine Mehrspaltige ComboBox. In der ersten Spalte wird ein Text angegeben. In der zweiten Spalte welche in der ComboBox nicht angezeigt wird, befindet sich die Zeilennummer des Textes zum Beispiel die Zahl 6. Wie kann ich jetzt in der ComboBox diejenige Zeile markieren in der die Zahl 6 steht?

Mit diesem Code befülle ich die ComboBox:



Sub CB_Beginn_Morgen_füllen()

Application.EnableEvents = False

With UF_Arbeitszeit.CB_Beginn_Morgen
.Clear
.AddItem ""
.SetFocus
For i = 4 To 14
.AddItem Format(ThisWorkbook.Worksheets("Tabelle1").Cells(i, 1), "##00.#0 Uhr")
.List(.ListCount - 1, 1) = ThisWorkbook.Worksheets("Tabelle1").Cells(i, 1).Row
Next i
End With

Application.EnableEvents = True

End Sub




Besten Dank für Eure Hilfe.

Freundliche Grüsse
Daniel Eberhard
AW: ComboBox Markieren
Kuwer
Hallo Daniel Eberhard,

über End With :
.ListIndex = 3

Gruß, Uwe
AW: ComboBox Markieren
daniel
HI
die zweite Schleife sucht dann den gesuchten Wert in der Liste und wählt die entsprechende Zeile aus:
Sub CB_Beginn_Morgen_füllen()

With UF_Arbeitszeit.CB_Beginn_Morgen
.Clear
.AddItem ""
.SetFocus
For i = 4 To 14
.AddItem Format(ThisWorkbook.Worksheets("Tabelle1").Cells(i, 1), "##00.#0 Uhr")
.List(.ListCount - 1, 1) = i
Next i
For i = 0 To .ListCount - 1
If .List(i, 1) = "6" Then
ListIndex = i
Exit For
End If
Next
End With
End Sub


Gruß Daniel
AW: ComboBox Markieren
Kuwer
Hallo Daniel,

da sollte dann aber die Möglichkeit, Mehrfachtreffer darzustellen, drin sein (Thema MultiSelect). ;-)
Es fehlt auch ein Punkt.

Gruß, Uwe
AW: ComboBox Markieren
daniel
Uwe, wenn du weißt wie, dann zeig es uns
(sorry, ich bin grad nicht in der Stimmung für solche Klugscheißerkommentar)
AW: ComboBox Markieren
Daniel Eberhard
Guten Tag zusammen.
Ich möchte mich zuerst recht herzlich bedanken, für all die Unterstützungen die ich da im Forum erhalte.
Danke Daniel für Dein Beispiel. Dies funktioniert wie ich mir das Vorgestellt habe.
Ich frage mich, ob dies nicht ohne Schleife auslesbar ist?

Mein Ansatz und Idee wäre irgendwie so:



With UF_Arbeitszeit.CB_Beginn_Morgen
.Value = .ListIndex = .List(1, 1)
End With


Daniel Dein Beitrag wegen Uwe hat mich etwas gefreut. Hatte mich gestern Abend auf die Antworten auch recht genervt. Ich suche oft und viel, zuerst im Netz. Doch irgendwann möchte man doch auch zu einer Lösung kommen. Dafür sind doch solche Forum da, um jemand helfen zu können.
Dies ist meine Meinung und möchte aber auch niemand damit Beleidigen oder sauer machen.
Habe die Frage nochmals offengelassen. Ansonsten, werde ich sicher die Schleife anwenden.
Danke Euch und wünsche allen ein schönes Wochenende.

Freundliche Grüsse
Daniel Eberhard
AW: ComboBox Markieren
daniel
Hi
da kommet es jetzt genauer darauf an, welche Zeile du markieren willst.
wenn du einen bestimmten Wert markieren will, musst du suchen, wo dieser steht und das geht am einfachsten mit der Suchschleife.

in deinem Fall kannst du dir aber ausrechnen, dass du die dritte Zeile markieren willst (erste Zeile 3, zweite 5, dritte dann gesuchte Wert 6)
wenn man die Zeile ausrechnen kann, muss man nicht suchen, dann kann man auch direkt ohne Schleife auf den Wert gehen.

also in deinem Fall ist der Index der gesuchten Zeile 2 (Index beginnt bei Null, daher immer eins weniger als gezählt) oder berechnet dann 6-4

als Code
With UF_Arbeitszeit.CB_Beginn_Morgen

.List = 2
End With


Gruß Daniel
AW: ComboBox Markieren
daniel
Hi
da kommet es jetzt genauer darauf an, welche Zeile du markieren willst.
wenn du einen bestimmten Wert markieren will, musst du suchen, wo dieser steht und das geht am einfachsten mit der Suchschleife.

in deinem Fall kannst du dir aber ausrechnen, dass du die dritte Zeile markieren willst (erste Zeile 3, zweite 5, dritte dann gesuchte Wert 6)
wenn man die Zeile ausrechnen kann, muss man nicht suchen, dann kann man auch direkt ohne Schleife auf den Wert gehen.

also in deinem Fall ist der Index der gesuchten Zeile 2 (Index beginnt bei Null, daher immer eins weniger als gezählt) oder berechnet dann 6-4

als Code
With UF_Arbeitszeit.CB_Beginn_Morgen

.ListIndex= 2
End With


Gruß Daniel
AW: ComboBox Markieren
Daniel Eberhard
Hallo Uwe
Ich begreife jetzt Deine Antwort nicht ganz. Wo muss ich das .Listindex=3 hin schreiben?

Muss nicht irgendwo zum Beispiel sowas stehen?




With Me.CB_Beginn_Morgen
.Value = .List(.ListIndex = 6)
End With

AW: ComboBox Markieren
Kuwer
Sub CB_Beginn_Morgen_füllen()

With UF_Arbeitszeit.CB_Beginn_Morgen
.Clear
.AddItem ""
.SetFocus
For i = 4 To 14
.AddItem Format(ThisWorkbook.Worksheets("Tabelle1").Cells(i, 1), "##00.#0 Uhr")
.List(.ListCount - 1, 1) = i
Next i
.ListIndex = 3
End With
End Sub
AW: ComboBox Markieren
Daniel Eberhard
Hallo Uwe

Ah cool. Du hast noch mein Code vereinfacht.
Aber für was steht jetzt das .Listindex=3?

Versuche es nochmals zu Erklären was ich möchte:

Als Beispiel: Es sollte mir der Eintrag in der Combobox markieren wo in Spalte 2 die Zahl 6 steht.

Vielleicht verstehts Du jetzt was ich gerne möchte?

Freundliche Grüsse
Daniel Eberhard
AW: ComboBox Markieren
ralf_b
warum recherchierst du nicht was listindex bedeutet. So schwer ist das doch wirklich nicht. Dann dürfte dir auch klarwerden warum die 3 zu deinem Ergebnis führt.
AW: ComboBox Markieren
GerdL
0 -- ""
1 -- 4
2 -- 5
3 -- 6