Clever-Excel-Forum

Normale Version: Combobox.value "Ab Zeile X" suchen & markieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Servus beinand
ich hab im Internet folgenden Code gefunden :


Code:
Private Sub ComboBox3_Change()
Dim loZeile As Long
  On Error Resume Next
  loZeile = Application.Match((ComboBox3.Value), ActiveSheet.Columns(4), 19)
  If Err > 0 Then
     MsgBox "Kunde nicht gefunden"
  Else
     Application.GoTo reference:=Cells(loZeile, 1), Scroll:=True
  End If
  On Error GoTo 0
  Err.Clear
End Sub

für mein erstes vorhaben, hat dieser einwandfrei funktioniert.

Auf dem nächsten Tabellenblatt habe ich jedoch zwei Sachen zu beachten, wo ich nicht genau weiß, wie ich diese jetzt einbaun soll.

1. Der Code sucht ab der ersten Zeile, er darf aber erst ab Zeile 19 beginnen.
In den Zeilen 1-18, werden die Zeilen (zur Übersicht) dargestellt, die ich ab Zeile 19 ausgewählt hab.

Sobald ein Wert ausgewählt ist, springt er natürlich in einer der Zeilen 1-18. Allerdings soll er die eigentliche eingabe ansteuern.

2. Würde ich gerne die Spalte "C" zum auswählen angeben.
An sich ist das auch kein Problem, leider verschiebt er die Tabelle mit dem Befehl "Scroll" auch in der Horizontalen was wiederrum unschön ist weil die Spalte A + B weiter zu sehen sein sollen.
Kann man den Befehl nur auf die Vertikale beschränken ?

Gruß
Stefan

PS: die Combobox wird über folgenden Code gefüllt :
Code:
Private Sub Worksheet_Activate()

   Dim rng As Range
           
       ComboBox3.Clear
       For Each rng In Range("D19:D200")
       If rng <> "" Then ComboBox3.AddItem rng
 
   Next
End Sub
Hallöchen,

das Befüllen der Combobox liefert Dir doch schon den Ansatz für Deine erste Frage.

Im Code steht
… ActiveSheet.Columns(4)

Wenn Du mal Columns übersetzt, kommst Du auf "Spalten".

Deine Combobox füllst Du mit

… Range("D19:D200")

Du willst in Spalte D ab Zeile 19 suchen? Sollte damit doch klappen. Falls Dir Application.Match dann bei einem Treffer in Zeile 19 als Ergebnis nicht 19 sondern 1 bringt, dann hilft etwas Mathe Smile