ActiveX Combobox - Select Zelle
#1
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
Antworten Top
#2
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.
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • tyr0n
Antworten Top
#3
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.
Antworten Top
#4
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste