Clever-Excel-Forum

Normale Version: ActiveX Combobox - Select Zelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Community, 

ich habe mit folgendem Code ein Problem:


Code:
Private Sub ComboBox1_Change()
With Worksheets("Bauteile")
        ReiheNr = 3
              Do While IsEmpty(Worksheets("Bauteile").Cells(ReiheNr, 2)) = False
                If Worksheets("Bauteile").Cells(ReiheNr, 2) = ComboBox1.Text Then
                .Cells(ReiheNr, 1).Select
                End If
            ReiheNr = ReiheNr + 1
          Loop
End With
End Sub


Während ich in dem Excel Sheet die Produktnummer eingebe, selected er bereits die Zelle und schreibt mir dann während ich noch die Nummer in die Combobox eingebe in die Zelle..
Kann ich der Combobox sagen, das ich erst die Produktnummer vollständig eingeben möchte und er erst dann mich zur Zelle leitet? Oder ist ComboBox1.change das falsche? Muss ich eventuell eine Schaltfläche hinzufügen? Wäre etwas unglücklich :(

Oder wäre eine Verzögerung die einzige Möglichkeit?

Viele Grüße Steve
Hi,

ich versteh Dein Problem noch nicht so ganz:
Natürlich wird das Change-Ereignis bei jedem Tastendruck ausgelöst - aber so lange keine vollständige Übereinstimmung gefunden wird, wird auch nix selektiert.

Ansonsten hat die Box auch ein LostFocus-Ereignis:

Private Sub ComboBox1_LostFocus()

Dieses Ereignis wird ausgelöst, sobald Du die ComboBox verlässt.

BTW:


Zitat:und schreibt mir dann während ich noch die Nummer in die Combobox eingebe in die Zelle..


In Deinem Code wird nur selektiert, aber nix irgendwo hin geschrieben.
Hallo Boris,

LostFocus ist für meinen Fall leider nicht das richtige.



Zitat:In Deinem Code wird nur selektiert, aber nix irgendwo hin geschrieben.


Angenommen ich möchte in der Combobox die ID 127 eingeben, sodass er mir dann zu der Zelle springt, passiert folgendes:

Wenn ich oben in der Combobox z.B. eine 1 eingebe, dann springt er mir bereits in die Zeile in der eine 1 steht. Tippe ich nun eine 2, schreibt er mir bereits in die Zelle in der die 1 stand, und bleibt dabei nicht in der Combobox bis ich die 127 eingegeben habe.
Hallo,

Code:
Private Sub ComboBox1_Change()
  If Len(ComboBox1.Text) = 3 Then
    ReiheNr = 3
    With Worksheets("Bauteile")
      Do While IsEmpty(.Cells(ReiheNr, 2)) = False
        If .Cells(ReiheNr, 2) = ComboBox1.Text Then
          .Cells(ReiheNr, 1).Select
          Exit Do
        End If
        ReiheNr = ReiheNr + 1
      Loop
    End With
  End If
End Sub

Gruß Uwe