ich suche zwei Zahlen in einer Datei mit über 5000 Zeilen. Die Zahlen sind
eindeutig und stehen in Spalte A.
Ich suche die Zahlen mit Cells.Find
Wie bekomme ich die Werte für die Zeilen und Spalten raus. Ich benötige
diese Werte auf jeden Fall einzeln, weil ich später um die gefunden Felder
noch ein paar Sachen ändern muss und diese mit Cells(x,y) anspreche.
Danke schonmal vorab.
Gruß
Sven
mit Cells.Find wird die gefundene Zelle aktiviert. Dann kannst du es z.B.
so abfragen:
MsgBox "Der gesuchte Begriff steht in " & Chr(10) & "Zeile " _
& ActiveCell.Row & Chr(10) & "Spalte " & ActiveCell.Column
--
Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Sven schrieb:
speicher die gefundene Zelle in einer Range-Variable, dann kannst du über die
Row- und Column-Eigenschaft die Zeile und Spalte ermitteln:
Public Sub SucheZahlen()
Dim rngFind As Range
Set rngFind = Worksheets("Tabelle1").Columns("A").Find("123456", LookAt:=xlWhole)
' Wenn Zelle gefunden wurde
If Not rngFind Is Nothing Then
' Zeile
Debug.Print rngFind.Row
' Spalte
Debug.Print rngFind.Column
' direkt referenzieren
Cells(rngFind.Row, "D").Value = "Test"
End If
End Sub
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Claus Busch schrieb:
> mit Cells.Find wird die gefundene Zelle aktiviert.
aber nur dann, wenn man sie explizit mit SELECT markiert, was man
ja nicht machen sollte!
"Sven" schrieb:
Hallo Sven,
Was machst du den mit den gefundenen Feldern? Schreibst du diese in eine
"Range"-Variable oder markierst diese?
Wenn ja, dann hast du an der gefundenen Zelle die Möglichkeit die
Eigenschaften .Row und .Column dir seperat ausgeben zu lassen - das sollte
das sein, was du suchst.
Gruß - Kai
"k.oppel" wrote:
Hi Kai,
danke für deine schnelle Antwort.
Ja die Spalten und Zeilen sollen in eine Range-Variable.
Wie geb ich das denn separat aus?
Am Thu, 12 Oct 2006 12:08:07 +0200 schrieb Melanie Breden:
> Hallo Claus,
>
> Claus Busch schrieb:
>> mit Cells.Find wird die gefundene Zelle aktiviert.
>
> aber nur dann, wenn man sie explizit mit SELECT markiert, was man
> ja nicht machen sollte!
ja, richtig. Ich habe nicht weitergedacht, weil ich nur suche, wenn ich
auch dort hin möchte und dann ist Select angebracht.
"Sven" schrieb:
Hallo Sven,
Du kannst in der Excel VBA - Hilfe dir auch das Beispiel zur Find-Methode
dazu anschauen.
Aber das Prinzip ist so, dass du dir deine Variable als Range(-objekt)
deffinierts und dann über Set den Inhalt (Suchergebnis) zuordnest:
Sub Findezelle
Dim spalte, zeile as Long
Dim zellenfund as Range
...
Set zellenfund = Cells.Find(<gesuchte Zahl>, lookin:=xlValues)
spalte = zellenfund.column
zeile = zellenfund.row
...
End Sub
Ich hoffe es hilft dir so weiter.
schöne Grüße - Kai
zeile = zellenfund.row
meckert er: "objektvariable oder with-blockvariable nicht festgelegt"
hier nochmal so, wie ich es übernommen habe:
Dim zeile As Long
Dim zellenfund As Range
Set zellenfund = Cells.Find(875, LookIn:=xlValues)
zeile = zellenfund.Row
Ups, ich hatte es jetzt nicht ausgetestet, sonst schau dir mal den letzten
Threat von Melanie in deinem ersten Posting an. Das Beispiel scheint mir
besser zu funktionieren, sie gibt die Zeile und Spalte durch die Debug.Print
- Methode zurück
Gruß - Kai
"Sven" schrieb: