Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit Macro suchen und dann ab Zeile xx anzeigen

Mit Macro suchen und dann ab Zeile xx anzeigen
22.08.2024 08:09:03
GenerationOldSchool
Guten Morgen zusammen,
Ich habe eine Tabelle, wo die obersten 12 Zeilen festgesetzt sind.
Darunter Sind Daten, die ich mit Macros über Spalte C alphabetisch suchen möchte.
Spalte C Ist nur das Alphabet A - Z, z.b. 13 ist A , 220 ist B, 310 ist C usw.

Die Suche habe ich als Marco gespeichert und auf Buttons gelegt die in Zeile 12 angelegt sind.

Also Button A
Spalte C markieren
STRG+F
Suchfenster ein A eingetragen
Enter
Zelle C11 markiert (Damit die Markierung von Spalte C aufgehoben wird)
Ende

Der Code sieht dann so aus:


Sub AA()
Columns("C:C").Select
Selection.Find(What:="A", After:=ActiveCell, LookIn:=xlFormulas2, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Range("C11").Select
End Sub


Der jeweilige Buchstabe wird gefunden, aber leider ab der Mitte des Bildschirms angezeigt und
leider nicht ab Spalte 13.

Hat jemand eine Idee, wie ich das hinbekomme ?
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
22.08.2024 08:45:16
Oberschlumpf
Hi,

deine Suche beginnt ja NACH ActiveCell.
Wenn ActiveCell vor Auswahl von C:C z Bsp C20 ist, dann wird der nächste Treffer unterhalb von C20 gezeigt - denn auch, wenn Auswahl = C:C, dann ist ActiveCell immer noch C20.

ohne deine Datei zu kennen, versuch es mal so:

Sub AA()

Range("C11").Select
Columns("C:C").Select
Selection.Find(What:="A", After:=ActiveCell, LookIn:=xlFormulas2, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub


Wenn ich richtig liege, beginnt die Suche nun unterhalb von C11, und der nächste Treffer ist dann ja C13, oder?

Hilfts?
Nein? Dann zeig bitte per Upload eine Bsp-Datei mit genügend Bsp-Daten und deinem Code.

Ciao
Thorsten
Anzeige
Das könntest du mit...
24.08.2024 14:49:35
Case
Moin, :-)

… der Application.Goto-Methode erreichen: ;-)
https://www.herber.de/bbs/user/171796.xlsb

Informationen zu den benutzten Methoden:
https://learn.microsoft.com/de-de/office/vba/api/excel.application.goto
https://learn.microsoft.com/de-de/office/vba/api/excel.worksheetfunction.match
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/on-error-statement

Du kannst bei einem Makro mit einem "Einzeiler" ruhig "On Error Resume Next" verwenden. In umfangreichen Makros nur mit Zurücksetzen bzw. neu Zuweisen des Error-Objektes.
Hier würde der Fehler z. B. auftreten, wenn der Buchstabe nicht gefunden wird. Könnte man abfangen - würde ich hier aber als "mit Spatzen nach Kanonen werfen" ansehen. ;-)

Servus
Case
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
23.08.2024 09:13:36
GenerationOldSchool
Hallo Herbert,

vielen Dank für diesen Vorschlag, sieht etwas eleganter aus, aber
leider wird der Buchstabe dann auch mitten im Fenster angezeigt.
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
23.08.2024 10:19:50
Herbert Grom
OK, dann mische es mit dem Teil von Gerd, dann brauchst du doch nur 1 einziges Makro und nicht 26 und auch keine 26 Buttons!

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

Servus
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
24.08.2024 10:17:15
Herbert Grom
Hallo,

ich habe eingesehen, dass es anwenderfreundlicher ist, wenn er nur auf die Schaltfläche des gewünschten Buchstabens klicken muss. Aber auch das geht mit nur einem einzigen Makro. Schau es dir mal an.

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

Servus
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
22.08.2024 10:46:36
GerdL
Moin,

beachte: MatchCase:= False führt zur Suche inkl. des Kleinbuchstabens a.
Reduziere das Selektieren.

Sub A_suchen()


Dim X As Range

Set X = Range(Cells(12, 3), Cells(Rows.Count, 3).End(xlUp)).Find( _
What:="A", After:=Cells(12, 3), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not X Is Nothing Then
X.Activate
End If

End Sub

Gruß Gerd
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
22.08.2024 12:05:06
GenerationOldSchool
Moin Zusammen, moin Oberschlumpf, moin GerdL

vielen Dank schon mal vorab für eure Hilfe.
Beides funktioniert leider nicht.
Wenn ich den Button A drücke ist die Zeile wo das A steht direkt unter dem festgelegten Bereich, klar ist ja auch das erste (Zeile12).
Ab dem B wird immer alles 15 Zeilen tiefer angezeigt.
Zeile 12 ist A
Zeile 55 ist B
Wenn ich auf Button B klicke wird aber Zeile 41 unter dem festgelegten Bereich angezeigt.

Und das bei so ziemlich jedem anderen Buchstaben auch.
Ich habe 2 Dateien hochgeladen, Test01 (Oberschlumpf) und Test02 (GerdL).

Leider weiss ich auch nicht wie ich die hier reinbekomme.
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
22.08.2024 13:52:15
ralf_b
vielleicht hilft ja das.
und der Parameter lookat=xlwhole und nicht xlpart

If Not X Is Nothing Then

ActiveWindow.Panes(3).ScrollRow = X.Row
End If
Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
23.08.2024 09:21:24
GenerationOldSchool
Hallo ralf_b,

vielen Dank, genau so wollte ich es haben :-)
Funktioniert !
und damit alle was davon haben, hier der Code für den Buchstaben A


Sub A()
Dim X As Range
Set X = Range(Cells(12, 3), Cells(Rows.Count, 3).End(xlUp)).Find( _
What:="A", After:=Cells(12, 3), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not X Is Nothing Then
ActiveWindow.Panes(3).ScrollRow = X.Row
End If
End Sub


Sollte das jemand machen wollen für jeden Buchstaben diesen Code eintragen
und dann in Zeile 1 'Sub A(),' und Zeile 4 'What:="A"' das A in den den entsprechenden Buchstaben umbenennen.

Vielen Dank nochmal an ALLE für die freundliche Hilfe !!!

Anzeige
AW: Mit Macro suchen und dann ab Zeile xx anzeigen
23.08.2024 10:05:28
hary
Moin
Sollte das jemand machen wollen für jeden Buchstaben diesen Code eintragen
und dann in Zeile 1 'Sub A(),' und Zeile 4 'What:="A"' das A in den den entsprechenden Buchstaben umbenennen.


Warum nutzt du nicht den vorgeschlagenen Code mit der Inputbox? Dann reicht ein Makro.
Sub suche()

Dim X As Range
Dim suche As String
suche = Application.InputBox("Suchwert eingeben", suche, , , , , , 2) 'nur Text zugelassen
Set X = Range(Cells(12, 3), Cells(Rows.Count, 3).End(xlUp)).Find( _
What:=suche, After:=Cells(12, 3), LookIn:=xlFormulas, Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Not X Is Nothing Then
Application.Goto Reference:=X.Offset(, -2), scroll:=True
End If
End Sub

gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige