Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
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
Combobox Listindex
03.12.2008 10:07:00
walter
Guten Morgen,
ich lese über eine Combox die Auswahldaten aus der Spalte "D1:D" ein.
Nun möchte ich gern, wenn ich z.b. Listindex 4 ausgewählt habe, das aus der Zelle "A2"
der Wert z.b. 22 in die Spalte "E1:E" neben dem Listindexwert gesetzt wird also
die 22 in E4.
Zusatzfrage:
Wie kann man beim aufklappen der Combobox das sofort nach oben gescrollt wird ?
mfg walter mb

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox Listindex
03.12.2008 18:22:13
fcs
Hallo Walter,
wenn du eine Combobox aus der Steuerelemente-Toolbox verwendest, dann mit folgendem Ereignis-Makro, dass du im VBA-Editor unter dem Tabellenblatt einfügen muss.
Auswertung andere Ereignis (Change oder Click) führt leicht zu ungewollten Einträgen.
Gruß
Franz

Private Sub ComboBox1_LostFocus()
If Me.ComboBox1.ListIndex  -1 Then
Cells(Me.ComboBox1.ListIndex + 1, 5) = Range("A2").Value
End If
End Sub


AW: Combobox Listindex
03.12.2008 19:12:00
walter
Guten Abend Franz,
bin gerade im Süden, habe dennoch testen können, einwandfrei!
Habe es am Schluss vom Change Ereignis gesetzt keine Fehler.
Da ich viele Namen zum Aufklappen habe und wenn ich jetzt Zimmer aufrufe,
und ich suche wieder neu, dann kommer wieder der Name Zimmer.
Kann man beim aufklappen nicht den auf den Namen A stellen bzw. ganz nach oben beim auswählen ?
Bin noch etwas Online, muß dann leider aufhören, Tagung.
mfg Walter mb
Anzeige
AW: Combobox Listindex
04.12.2008 09:19:00
fcs
Hallo Walter,
habe noch ein wenig experimentiert.
Die Kombination der folgenden beiden Ereignismakros sollte deinen Wünschen nahekommen.
Meine Empfehlung LostFocus- statt Change-Ereignis zu benutzen war deshalb, weil es so nicht zu Fehlern bei versehentlichem Anklicken eines falschen Eintrags in der Auswahlliste kommt.
Gruß
Franz

Private Sub ComboBox1_Change()
If Me.ComboBox1.ListIndex  -1 Then
Cells(Me.ComboBox1.ListIndex + 1, 5) = Range("A2").Value
End If
End Sub
Private Sub ComboBox1_GotFocus()
Dim varMerken
'Merken des Eintrags für 1. Eintrag in Spalte E
varMerken = Cells(1, 5)
Me.ComboBox1.ListIndex = 0 'Listbox auf 1. Wert setzen, scrollt auch Anzeige
Me.ComboBox1.ListIndex = -1 'Listbox auf keinn Wert setzen
'gemerkten Eintrag für 1. Zeile in Spalte E wieder eintragen
Cells(1, 5) = varMerken
End Sub


Anzeige
Bin wieder da, Combobox Listindex
05.12.2008 09:09:54
walter
Guten Morgen Franz,
habe mal das 2.Makro getestet, leider Fehlanzeige.
Beim anklicken geht auf den 1. Eintrag aber ich kann dann nicht auswählen.
mfg Walter MB
AW: Bin wieder da, Combobox Listindex
05.12.2008 13:40:00
fcs
Hallo Walter,
du brauchst schon beide Makros, damit es funktioniert.
Beispiel-datei:
https://www.herber.de/bbs/user/57369.xls
Gruß
Franz
Leider irgendwie mein Muster
05.12.2008 17:24:09
walter
Guten Abend Franz,
erst mal Danke.
Soweit alles verstanden, allerdings auf meine Tabelle hin ist irgendwie der Wurm
drin, da ich ja Filter setze.
Anbei deine Datei mit mein Muster, vielleicht hast Du eine Idee ?
https://www.herber.de/bbs/user/57381.xls
mfg walter mb
Anzeige
AW: Leider irgendwie mein Muster
05.12.2008 19:19:55
fcs
Halllo Walter,
durch den Autofilter und das Ändern der Komboboxwerte kam es beim Fokusieren zu mehreren Auslösungen des Change-Ereignis.
Da du Select-Anweisungen für Zellen in deinem Code hattest, verlor die Kombobox ihren Focus und das wàr's.
Ich hab es mal angepasst. Durch eine speziell gesetzte Variable wird verhindert, dass die Change-Prozedur während der Abarbeitung der Focus-Prozedur abgearbeitet wird. Das Setzen der Auswahlliste für die Kombobox muss in die Focus-Prozedur, sonst gibt es ein Problem beim 1. Aufruf der Fosus-Prozedur, da die Kombobox noch gar keine Daten hat.
Der Autofilter wird ggf. ebenfalls in der Focus-prozedur aktiviert.
Gruß
Franz

Option Explicit
Private bolFocus As Boolean
Private Sub ComboBox1_Change()
Dim FI$
If bolFocus = True Then Exit Sub
FI = Me.ComboBox1.Text
If FI = "ALLE" Then
Me.AutoFilter.Range.AutoFilter Field:=3
Else
Me.AutoFilter.Range.AutoFilter Field:=3, Criteria1:=FI & "*"
End If
'-- jetzt wird die Filterungszahl neben Namen gesetzt --------
If Me.ComboBox1.ListIndex  -1 Then
Cells(Me.ComboBox1.ListIndex + 1, 16) = Range("A4").Value
End If
End Sub
Private Sub ComboBox1_GotFocus()
Dim varMerken
On Error Resume Next
bolFocus = True
'Merken des Eintrags für 1. Eintrag in Spalte O
If Not ActiveSheet.AutoFilterMode Then
Range(Cells(5, 1), Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, 13)).AutoFilter
Else
Me.ShowAllData
End If
varMerken = Cells(1, 15)
Me.ComboBox1.List = Me.Range("O1:O" & Me.Cells(Me.Rows.Count, 15).End(xlUp).Row).Value
Me.ComboBox1.ListIndex = 0 'Listbox auf 1. Wert setzen, scrollt auch Anzeige
Me.ComboBox1.ListIndex = -1 'Listbox auf keinn Wert setzen
'gemerkten Eintrag für 1. Zeile in Spalte E wieder eintragen
Cells(0 + 1, 15) = varMerken
bolFocus = False
End Sub


Anzeige

56 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige