Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
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
Inhaltsverzeichnis

Hyperlink zum ersten Teilergebnis

Hyperlink zum ersten Teilergebnis
30.12.2023 10:44:50
Thomas
Hallo,

ich habe eine Aufgabenliste im Bereich N8:P63
Diese möchte ich in N3 nach Wortfragmenten durchsuchen und zum ersten gefundenen Teilergebnis im Bereich N8:N63 springen.
Dazu habe ich eine Textbox, die mit N3 verknüpft ist.
Wenn ich die Eingabe fertig habe und Enter drücke, soll er dort hin springen.

Also, ich suche nach "Steuer", habe in der Liste:

1. Steuer abgeben
2. Steuerung des Karussells reparieren
3. Kuchen backen
4. Steuer, Kirche, Auto
5. Steuer

Mit folgendem Code springt er aktuell zu Nummer 5, weil er dort den reinen, exakten Begriff findet.

Option Explicit

Private Sub Textbox1_keydown(ByVal keycode As MSForms.ReturnInteger, ByVal shift As Integer)

Dim i As Integer
Dim ws As Worksheet

Set ws = Sheets("Aufgaben")

If keycode = 13 Then
i = 8
Do While ws.Cells(i, 14) > ""
If UCase(ws.Cells(i, 14)) = UCase(TextBox1) Then
ws.Cells(i, 14).Activate
Exit Do
End If
i = i + 1
Loop

End If

End Sub



Es wäre schön, wenn durch eine Anpassung des Codes zur ersten Aufgabe gesprungen wird, der irgendwie die Buchstaben "Steuer" enthält
Supernett wäre natürlich noch ein Button "Nächster", über den die Suche fortgesetzt wird.

Die Suchfunktion kenne ich natürlich.

Auch eine Buttonlösung für Teil 1 (Hinspringen) und / oder Teil 2 (weitersuchen) wäre in Ordnung.

Oder ein Hyperlink wie dieser:

=HYPERLINK("#N"&MAX(ISTZAHL(FINDEN(N3;N8:N63))*ZEILE(8:63));"Hinspringen")


Hier springt er allerdings merkwürdiger Weise immer zum zweiten Ergebnis von oben, nicht zum ersten?!

Wer kann mir da helfen?

Vielen Dank,

Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink zum ersten Teilergebnis
30.12.2023 11:16:58
Oberschlumpf
Hi Thomas,

zeig doch mal per Upload eine Bsp-Datei mit genügend Bsp-Daten + deinem Code.

Ciao
Thorsten
AW: Hyperlink zum ersten Teilergebnis
30.12.2023 13:17:30
Thomas
Hallo Thorsten,

danke für Deine flotte Rückmeldung.
Ist manchmal nicht so einfach mit den Dateien, ich kann es aber verstehen, dass es sonst schwierig ist.

Ich habe hier mal die Auflistung raus seziert.

Es wäre schön, wenn der gefundene Teileintrag angesprungen und ggf. der nächste angesprungen werden kann.


https://www.herber.de/bbs/user/165749.xlsm

Viele Grüße

Thomas
Anzeige
AW: Hyperlink zum ersten Teilergebnis
31.12.2023 09:47:13
Oberschlumpf
Hi Thomas,

hier meine Idee...
https://www.herber.de/bbs/user/165758.xlsm

Ich hatte es zuerst auch mit MsgBox in der Art versucht, dass...
...vor der "Nachster?"-Frage die 1. gefundene Zelle "angesprungen" wird
...bei Klick auf JA dann die nächste gefundene Zelle "angesprungen" wird...usw

Aber...

Eine MsgBox wird standardmäßig immer im Zentrum der Excel-Datei angezeigt.
In Fall deiner Bsp-Datei wird die MsgBox immer genau so angezeigt, dass die gefundene Zelle nicht mehr sichtbar ist.
Es ist zwar möglich, auch MsgBoxen an beliebiger Stelle zu positionieren...aber das ist aufwendig zu programmieren...für mein Interesse daran zu aufwendig^^ :-)

So hab ich einen anderen Weg gesucht + gefunden.

- ich hab die Tabelle so geändert, dass während des Scrollens innerhalb des Blattes die obersten 5 Zeilen fixiert sind und nicht aus dem Sichtbereich verschwinden
- neben der Textbox hab ich einen Button als Ersatz für die MsgBox eingefügt

Jetzt kannst du nach Eingabe in Textbox immer auf den Button klicken, und bei Vorhandensein weiterer Treffer werden auch diese angezeigt.

klitzekleines Problem vielleicht:
Manchmal kommt es vor, dass nach 1x Klick auf Button kein weiterer Treffer angezeigt wird, obwohl noch weitere Treffer vorhanden sind.
Hier hilft: einfach mehrmals auf den Button klicken.

Ich hab nicht herausgefunden, warum nicht direkt bei jedem Buttonklick zum nächsten Treffer gesprungen wird, vermute, es könnte dein weiterer Code, z Bsp in Selection_Change, damit zu tun haben...hab das aber nich weiter geprüft.

Konnte ich denn helfen?

Ciao
Thorsten
Anzeige
AW: Hyperlink zum ersten Teilergebnis
31.12.2023 13:21:48
Thomas
Hallo Thorsten,

erst mal auch ein Danke an Dich, für die Zeit, die Du Dir nimmst.

Dadurch dass in den ersten Spalten noch einiges stattfindet, ist das mit dem fixieren nicht ganz so einfach. Dein Suchbutton war aber eigentlich auch das, was ich mir gewünscht hatte.

Harys Messagebox ist nun aber auch schön geworden.
Also habe ich eure beiden tollen Ideen kombiniert und habe nun entweder die Möglichkeit per Enter Taste die Messagebox aufzurufen oder über Deinen Button direkt im Formular zu springen.

Einzig die olle graue Trennlinie der Fensterfixierung finde ich unschön, sie entfernt auch die Rahmen der anderen Blöcke in den ersten Spalten.
Aber die bekommt man wohl nicht ausgemerzt?! Ich meine, dass sie nicht angezeigt wird?!

Hier für Dich auch nochmal der Code, wie er am Ende aussieht + natürlich das Modul aus Deiner Datei.

Vielen Dank und einen guten Rutsch auch schon mal an Dich!

Thomas



Private Sub cmbSearch_Click()

sbSearch TextBox1.Text

End Sub



Private Sub Textbox1_keydown(ByVal keycode As MSForms.ReturnInteger, ByVal shift As Integer)
Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets("Aufgaben")
If keycode = 13 Then
i = 8
Do While ws.Cells(i, 14) > ""
If UCase(ws.Cells(i, 14)) Like "*" & UCase(TextBox1) & "*" Then
ws.Cells(i, 14).Select
If MsgBox("Gefunden habe ich: " & Chr(10) & Chr(10) & Chr(10) & Chr(10) & ws.Cells(i, 14) & Chr(10) & Chr(10) & Chr(10) & Chr(10) & vbTab & vbTab & vbTab & vbTab & vbTab & "...soll ich weitersuchen?", vbYesNo, "Soll ich weitersuchen?") = vbNo Then
Exit Do
End If
End If
i = i + 1
Loop
End If
End Sub
Anzeige
AW: mit Like und Msgbox
30.12.2023 12:21:52
hary
Moin
Mit Like und einer Msgbox? Evtl.hilft dir das.
Private Sub Textbox1_keydown(ByVal keycode As MSForms.ReturnInteger, ByVal shift As Integer)

Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets("Aufgaben")
If keycode = 13 Then
i = 8
Do While ws.Cells(i, 14) > ""
If UCase(ws.Cells(i, 14)) Like "*" & UCase(TextBox1) & "*" Then
If MsgBox(ws.Cells(i, 14), vbYesNo, "ist gemeint") = vbYes Then
ws.Cells(i, 14).Activate
Exit Do
End If
End If
i = i + 1
Loop
End If
End Sub

Die Msgbox nervt irgendwann wenn zuviel Teiltreffer.
gruss hary
Anzeige
AW: mit Like und Msgbox
30.12.2023 13:15:00
Thomas
Hallo Hary,

vielen Dank, Deine Idee war recht interessant und hat sofort geklappt.
Gut sieht es auch aus.

Leider ist es so, dass ich die Box erst genau lesen muss, um zu wissen, ob ich das suche, was dort steht.
Schöner wäre es, wenn das jeweilige Textfeld der Liste zusätzlich (oder ganz ohne Messagebox) mit angesprungen (aktiviert) wird.

Dann kann man schneller erfassen, ob das Gefundene gesucht worden ist, da es die gleiche Formatierung hat, wie das Feld, mit dem man in der Originaldatei arbeitet.

Die Liste ist nur die Sammlung der Aufgaben. Sie wird aufbereitet an anderer Stelle dargestellt.
Mit dieser arbeitet man dann.

Ich lade gleich mal eine Beispieldatei hoch.

Da ist die "Aufbereitung" aber ausgelassen. Ist wegen des Datenschutzes etwas schwierig.
Sie sieht aber vor, die Felder aus der Spalte N anders sortiert aber im gleichen Format aufzulisten.

Deshalb erkennt man schneller, wenn das Feld aktiviert wird, ob man das sucht, was gefunden wurde.

Klingt etwas komplizierter, als es ist.


https://www.herber.de/bbs/user/165749.xlsm

Anzeige
AW: mit Like und Msgbox
31.12.2023 13:13:25
Thomas
Hallo Hary,

vielen Dank für Deine Zeit, die Du nimmst.

Ich habe den Code noch ein ganz wenig angepasst, so dass mir die textbox jetzt optisch noch etwas besser gefällt.
Eigentlich ist er ein kleiner Mix.

Sieht sehr gut aus!
Ich habe diesen nun noch mit dem Suchbutton von Thorsten kombiniert und bin extrem zufrieden.

Vielen , vielen Dank und einen guten Rutsch!

Thomas

Private Sub Textbox1_keydown(ByVal keycode As MSForms.ReturnInteger, ByVal shift As Integer)

Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets("Aufgaben")
If keycode = 13 Then
i = 8
Do While ws.Cells(i, 14) > ""
If UCase(ws.Cells(i, 14)) Like "*" & UCase(TextBox1) & "*" Then
ws.Cells(i, 14).Select
If MsgBox("Gefunden habe ich: " & Chr(10) & Chr(10) & Chr(10) & Chr(10) & ws.Cells(i, 14) & Chr(10) & Chr(10) & Chr(10) & Chr(10) & vbTab & vbTab & vbTab & vbTab & vbTab & "...soll ich weitersuchen?", vbYesNo, "Soll ich weitersuchen?") = vbNo Then
Exit Do
End If
End If
i = i + 1
Loop
End If
End Sub

Anzeige
AW: mit Like und Msgbox
31.12.2023 09:06:30
hary
Moin Thomas
Dann erst die Zelle auswaehlen.
Private Sub Textbox1_keydown(ByVal keycode As MSForms.ReturnInteger, ByVal shift As Integer)

Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets("Aufgaben")
If keycode = 13 Then
i = 8
Do While ws.Cells(i, 14) > ""
If UCase(ws.Cells(i, 14)) Like "*" & UCase(TextBox1) & "*" Then
ws.Cells(i, 14).Select
If MsgBox("", vbYesNo, "weitersuchen?") = vbNo Then
Exit Do
End If
End If
i = i + 1
Loop
End If
End Sub

gruss hary
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige