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

VBA find function

Forumthread: VBA find function

VBA find function
07.07.2022 10:56:43
Chris
Hallo zusammen,
ich habe folgenden VBA Code geschrieben. Er hat auch gut funktioniert. Allerdings bekomme ich auf einmal einen Run Time error 91.
In dem Bereich:
Set finden = Sheet3.Range("A11:z100").Find(what:=Sheet3.Range("b3").Value)
Cells(finden.Row, finden.Column).Offset(3, 0).Activate
Finden soll den Inhalt einer Zelle finden: =C3&D3
Allerdings wird der Text daraus nicht mehr gefunden. Bis gestern hat es funktioniert
Wenn ich die Zelle mit dem zu suchenden Text und die Zelle mit dem zu finden Text mit =B4=I11 bekomme ich jedoch TRUE
Warum wird dann I11 nicht gefunden?
Vielen Dank
Mein Code:

Sub Filter()
Dim finden As Range
Sheet2.Range("A2").AutoFilter
Sheet2.Range("A2").AutoFilter 1, Sheet3.Range("G3").Value
Sheet2.Columns("A").Hidden = True
Sheet2.UsedRange.Offset(1, 0).Resize(Sheet2.UsedRange.Rows.Count - 1, Sheet2.UsedRange.Columns.Count).SpecialCells(xlCellTypeVisible).Copy
Sheet3.Activate
Set finden = Sheet3.Range("A11:z100").Find(what:=Sheet3.Range("b3").Value)
Cells(finden.Row, finden.Column).Offset(3, 0).Activate
ActiveSheet.Paste
Sheet2.Columns("A").Hidden = False
End Sub
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA find function
07.07.2022 11:23:44
ralf_b
du prüfst das Ergebnis von find nicht ob es ein Objekt ist. Wenn nichts gefunden wird und du benutzt eine Objektvariable die Nothing ist ,dann gehts eben nicht.
Sheet3 muß nicht aktiviert werden wenn du Sheet3.Cells(finden.Row.... nutzt.
"bis gestern hats funktioniert" bedeutet Irgendetwas ist heute anders. Finde heraus was. Wir können das nicht. C3&D3 sind was? verbundene Zellen? versuche es mit C3 Wobei in deiner Beschreibung passen die Bezüge so gar nicht zusammen.

Anzeige
AW: VBA find function
07.07.2022 19:21:04
Yal
Hallo Chris,
wenn ich das richtig verstehe, das Filtern macht nur Sinn, wenn irgendwas gefunden wird.
Daher würde ich folgende Komplettlösung vorschlagen:

Sub Filter()
Dim Finden As Range
With Sheet3
Set Finden = .Range("A11:Z100").Find(what:=.Range("B3").Value)
End With
If Not Finden Is Nothing Then
With Sheet2
.Range("A2").AutoFilter
.Range("A2").AutoFilter 1, Sheet3.Range("G3").Value
.Columns("A").Hidden = True
.UsedRange.Offset(1, 0).Resize(.UsedRange.Rows.Count - 1, .UsedRange.Columns.Count).SpecialCells(xlCellTypeVisible).Copy
Finden.Offset(3, 0).Paste
.Columns("A").Hidden = False
End With
End If
End Sub
Finden ist ein Range und nach einer erfolgreichen Suche sogar eine Einzelzelle auf Sheet3.
Cells(finden.Row, finden.Column).Offset(3, 0).Activate
ActiveSheet.Paste

kann man daher mit
Finden.Offset(3, 0).Paste
abkürzen.
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige