Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche Zeilennummer

Suche Zeilennummer
07.12.2004 10:35:12
Markus
Hallo zusammen,
ich suche eine Möglichkeit eine Spalte nach einem festen Wert abzusuchen und mir dann die Zeilennummer ausgeben zu lassen wo eine Übereinstimmung gefunden wurde. Wenn mehrere Übereinstimmungen gefunden werden sollen auch mehrere Zeilennummern ausgegeben werden.
Kann mir da jemand weiterhelfen? Ich brauch zwingend die Zeilennummer und komm irgend wie mit sverweis da nicht weiter...
Danke
Markus

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

Betreff
Datum
Anwender
Anzeige
AW: Suche Zeilennummer
07.12.2004 10:53:38
Steffen
Hallo Markus,
die Funktion die du suchst heisst MATCH (jedenfalls in VBA.)
Wie jetzt der Name der Funktion in Excel direkt heisst weiss ich jetzt gerade nicht.. aber ich wette, da gibts einen "Sehen Sie auch hier" Eintrag in der Hilfe :-)
Soweit mir bekannt liefert MATCH aber immer nur eine Zeilennummer. Musst mal gucken, was in der Hilfe jetzt steht, eventuell musst du das Suchfeld dann verschieben oder ändern, also wenn du einen Wert gefunden hast, dann ab dieser Zeile weiter suchen lassen usw.
Gruss, Steffen.
AW: Suche Zeilennummer
WernerB.
Hallo Markus,
da Du nicht angegeben hast, wo der Suchbegriff herkommt, in welcher Spalte gesucht werden und wie die Ergebnisausgabe erfolgen soll, habe ich Dir eben dieses Makro gestrickt, das Du selbstverständlich auf Deine Gegebenheiten noch anpassen musst.
Der Suchbegriff steht in Zelle A1; durchsucht wird der Zellbereich B1:B30.

Sub Markus()
Dim SuBe As Range
Dim s As String, fiAd As String, t As String
s = Range("A1").Value
t = "Zeilennummer(n): "
With Range("B1:B30")
Set SuBe = .Find(What:=s, After:=Range("B30"), LookAt:=xlWhole)
If Not SuBe Is Nothing Then
fiAd = SuBe.Address
t = t & SuBe.Row
Do
Set SuBe = .FindNext(SuBe)
If Not SuBe Is Nothing Then
If SuBe.Address <> fiAd Then
t = t & ", " & SuBe.Row
End If
End If
Loop While Not SuBe Is Nothing And SuBe.Address <> fiAd
End If
End With
Set SuBe = Nothing
MsgBox t
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Suche Zeilennummer
07.12.2004 12:40:47
Markus
Danke Werner,
das klappt wie verrück :o)
Sag mal geht so was auch für mehrere Suchkriterien, also dass ich zusätzlich noch eine weitere spalte mit nem weiteren suchkriterium vergleiche und ich dann als ergebnis nur die zeilennummer(n) rausbekomme wo beide kriterien passen.
Du hast mir in jedem Fall riesig weitergeholfen.
Danke
Markus
AW: Suche Zeilennummer
WernerB.
Hallo Markus!
Der erste Suchbegriff steht in Zelle A1; durchsucht wird der Zellbereich B1:B30.
Der zweite Suchbegriff steht in Zelle A2; durchsucht wird der Zellbereich C1:C30

Sub Markus2()
Dim SuBe As Range
Dim s As String, fiAd As String, t As String
s = Range("A1").Value
t = "Zeilennummer(n):  "
With Range("B1:B30")
Set SuBe = .Find(What:=s, After:=Range("B30"), LookAt:=xlWhole)
If Not SuBe Is Nothing Then
fiAd = SuBe.Address
If SuBe.Offset(0, 1).Value = Range("A2").Value Then
t = t & SuBe.Row
End If
Do
Set SuBe = .FindNext(SuBe)
If Not SuBe Is Nothing Then
If SuBe.Address <> fiAd And _
SuBe.Offset(0, 1).Value = Range("A2").Value Then
If Right(t, 2) <> "  " Then
t = t & ", " & SuBe.Row
Else
t = t & SuBe.Row
End If
End If
End If
Loop While Not SuBe Is Nothing And SuBe.Address <> fiAd
End If
End With
Set SuBe = Nothing
MsgBox t
End Sub

Gruß
WernerB.
Anzeige
AW: Suche Zeilennummer
07.12.2004 13:40:37
Markus
Hallo Werner,
klasse!
Eine Sache noch verate mir doch bitte an welcher stelle drin des codes steckt, dass der zweite wert im bereich c1:c30 gesucht wird? Bzw. wo ich die spalte verändern kann.
Danke
AW: Suche Zeilennummer
WernerB.
Hallo Markus,
das habe ich hier so gelöst, dass mit der Anweisung
SuBe.Offset(0, 1).Value = Range("A2").Value ' - Achtung: kommt im Makro zwei Mal vor !!!
bei einem Treffer in der ersten Spalte ein Vergleich in der gleichen Zeile eine Spalte rechts neben der ersten Spalte mit dem zweiten Suchbegriff erfolgt.
Die zweite Spalte kannst Du also bequem über die Offset-Eigenschaft festlegen.
Gruß
WernerB.
Anzeige
AW: Suche Zeilennummer
07.12.2004 15:08:35
Markus
hallo werner,
ich hoffe ich nerve nicht zu sehr. Deine Lösung ist perfekt und funktuioniert auch super, nur verstehe ich das noch nicht so ganz und ich würde da schon gerne durchblicken. Also das mit dem Offset habe ich verstanden. ich will jetzt versuchen noch ein suchkriterium einzubauen, möchte das aber gerne alleine machen... ich komm mit dem aufbau nur noch nicht so zu rande... wie muss ich vorgehen...
Danke
AW: Suche Zeilennummer
WernerB.
Hallo Markus,
na ganz einfach:
ich würde so vorgehen, dass die bereits angesprochene Anweisung (zwei mal!)
SuBe.Offset(0, 1).Value = Range("A2").Value
mit "And" um eine weitere Anweisung ergänzt wird, z.B. so:
SuBe.Offset(0, 1).Value = Range("A2").Value And SuBe.Offset(0, 2).Value = Range("A3").Value
Ich habe das jetzt nicht getestet, aber ich hoffe, dass es so klappt.
Gruß
WernerB.
Anzeige
AW: Suche Zeilennummer
07.12.2004 15:31:51
Markus
Das klappt!
Klasse vielen Dank!
AW: Suche Zeilennummer
07.12.2004 15:28:06
Markus
Noch ne Frage hinten dran, ich will mit der variable weiterarbeiten
und hatte mir so was cooles ausgedacht:
ActiveSheet.Cells(t, 1).ClearContents
bloß da geht immer der debugger los. kann es daran liegen, dass t nicht zwangsläufig eine zahl ist, sondern auch mehrere zahlen sein kann?
AW: Suche Zeilennummer
WernerB.
Hallo Markus,
in meinem Makro habe ich die Variable "t" als String (=Text) deklariert. In dieser Variablen werden alle gefundenen Zeilennummern (getrennt durch Komma und Leerzeichen) hinter den Text "Zeilennummer(n): " geschrieben.
Am Ende erfolgt dann die Ausgabe von "t" per MsgBox.
Wenn Du gefundene Zeilennummern weiterverarbeiten willst, solltest Du m.E. dafür eine eigene (Long-)Variable verwenden; die Variable "t" ist dafür nicht geeignet.
Gruß
WernerB.
Anzeige
AW: Suche Zeilennummer
07.12.2004 16:16:14
Markus
Ach so! alles klaro,
dann probier ich es mal.
Ich danke Dir!
Gruß
Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige