2.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo, ich habe eine Tabelle mit mehreren 100 Namen (Abteilung; Name; Vorname usw.). Ich möchte nun gern nach Eingabe eines Buchstabens in ein bestimmtes Feld, daß der Cursor zum ersten Namen in der Tabelle, der mit diesem Buchstaben beginnt, springt.

11 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

das ist nur über VBA mit etwas Aufwand zu lösen.

Ist aber mit deinen unpräzisen Angaben nicht so zu machen.

Eine andere Möglichkeit wäre mit Autofilter und entsprechenden Eingaben zu arbeiten.


Gruß

Helmut
0 Punkte
Beantwortet von
Danke erstmal für die schnelle Antwort.
Ich weiss zwar nicht, welche genaueren Angaben gebraucht werden, aber ich versuch es einfach mal.
Die Namen stehen in der Spalte C von C5 : C3004. Ca. 800 Namen sind bereits enthalten und werden stetig erweitert. Für das Eingabefeld gebe ich mal J2 vor, obwohl das nicht wirklich wichtig ist, wo das ist.
Danke im voraus für eine schnelle Antwort.
0 Punkte
Beantwortet von
Sorry, habe noch vergessen zu sagen: Die Lösung über Autofilter gefällt mir nicht. Wäre also über einen Lösungsvorschlag mittels VBA (Makro) dankbar.
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

gib z.B. in I2 folgende Formel ein:

=HYPERLINK("#" & ADRESSE(VERGLEICH(J2&"*";C:C;0);3;1))

in J2 gib irgendeinen Anfangsbuchstaben ein, es erscheint in I2 der Hyperlink, der wenn er angeklickt wird zur dementsprechenden Zelle in der Spalte C springt.


Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul1, sorry ich konnte mich erst jetzt wieder mit dem Problem beschäftigen. Es klappt genau so, wie ich es mir vorgestellt habe. Danke.
Wäre es jetzt noch möglich, daß bei erneutem anklicken, der Cursor zum nächsten Eintrag (und immer so weiter) springt?
Gruß Flodnug
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Flodnug,

Füge z.B. unterhalb von I2 einen Button ein:

Private Sub CommandButton1_Click()
Selection.Offset(1, 0).Select
End Sub

>Button
>Steuerelement formatieren
>Eigenschaften
>von Zellposition und -größe unabhängig >markieren

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul1,
danke für die schnelle Antwort. Sie erfüllt aber leider nicht den Zweck. Kann mit dem Makro nur per Hand ein Feld weiter springen. Wenn ich dann aber erneut den Hyperlink anklicke, springt er erneut nur zum ersten gefundenen Eintrag. Ich möchte aber, daß wenn ich z.Bsp. "Mu" eingebe, der Cursor zum ersten Namen mit mu am Anfang springt (z.Bsp. Mucke -> macht er) und beim zweiten Click zum nächsten Namen mit "Mu" am Anfang springt (z.Bsp. Mund -> macht er nicht, sondern bleibt bzw. springt wieder zu Mucke).
Gruß Flodnug
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Flodnug,

Deine Zusatzfrage ist sehr anspruchsvoll, leider weiß ich mir darauf keinen Reim.

Sollte mir dazu noch was einfallen, würde ich es schreiben.


Gruß

Paul1
0 Punkte
Beantwortet von rudi4ad Mitglied (167 Punkte)
Hallo Flodnug,
eine andere Idee:

Das Makro braucht ja noch zwei Informationen, die irgendwo gespeichert werden müssen. Wie oft kommt der Suchbegriff vor und zu welchem Mamen bin ich zuletzt gesprungen. In meinem Beispiel habe ich die Zellen K2 und L2 dazu genutzt.
Option Explicit
Dim Gefunden()
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
Dim i&
If Not Target.Address(0, 0) = "J2" Then Exit Sub
Erase Gefunden
On Error GoTo NIX
For Each C In Me.Range("C5 : C25")
If C.Text Like Target & "*" Then
ReDim Preserve Gefunden(i)
Gefunden(i) = C.Address(0, 0)
i = i + 1
End If
Next C
Range("k2") = UBound(Gefunden)
Range("l2") = 0
Exit Sub
NIX:
MsgBox "Gib't nich!"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Target.Address(0, 0) = "J3" Then Exit Sub
If Me.Range("L2") <> "" Then
If Me.Range("L2") > Me.Range("K2") Then Exit Sub
Application.Goto Reference:=Me.Range(Gefunden(Me.Range("L2"))), Scroll:=True
Me.Range("L2") = Me.Range("L2") + 1
End If
End Sub

Kopiere die Makros in das Klassenmodul deiner Tabelle.
In J2 wird der Suchbegriff eingegeben.
Das erste Makro sucht die Übereinstimmungen und trägt die Anzahl der Fundstellen in K2 ein und zu welchem Namen als nächstes gesprungen wird in L2.
Verlasse J2 mit ENTER. Der Cursor landet in J3, woraufhin das zweite Makro ausgeführt wird, welches den Sprung zum gesuchten Namen ausführt. Beim wiederholten Anklicken von J3 wird jeweils der nächste Name angesprungen.
0 Punkte
Beantwortet von rudi4ad Mitglied (167 Punkte)
statt GoTo kannst du natürlich auch Select verwenden.

Gruß
Rudi
...