Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Find Funktion

Find Funktion
14.04.2009 21:25:36
Aton
Hallo Excel-Freunde
Set Rng = Range("A2:HF65536").Find(What:=Cells(1, 4), After:=Cells(Ze, Sp), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
Ze = Rng.Row Fehler Nummer 91
Sp = Rng.Column
Suche in Datei mit 13.000.000 Zahlen bestimmte 6-Stelige Komma-Zahlen um sie zu Bearbeiten oder zu löschen. Wenn ichs richtig denke Spaltenweise ab der Celle Ze,sp .
Nach ca. 150 funden kommt der Fehler 91 Objekt oder With-Block Variable nicht festgelegt.
Aber die Komma-Zahl die ich suche ist vorhanden.
1. Was ist das Objekt oder With-Block.
2. Was muß ich ändern damit es zu Ende leuft.
PS. Bei Set Rng = Find... .activate kommt der Gleiche Fehler 91 bei der Suchzeile.
Ze = activecell.row Funktioniert natürlich dann auch nicht.
Guß Aton

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find Funktion
14.04.2009 21:43:20
Nepumuk
Hallo Aton,
Find ist keine Funktion sondern eine Methode.
Warum suchst du nach Formeln? LookIn:=xlFormulas
Warum suchst du Teile des Inhaltes? LookAt:=xlPart
Warum müssen die Zellen das selbe Format haben wie die Zelle mit dem Suchbegriff? SearchFormat:=True
Wo ist die Abfrage ob überhaupt etwas gefunden wurde?
Wo ist die FindNext - Methode?
Wo die Schleife in der das ganze läuft?
Die drei Zeilen welche du zeigst sagen wenig.
Gruß
Nepumuk
AW: Find Funktion
14.04.2009 21:55:28
Aton
Hallo
In der Celle 1,4 Steht immer was gesucht werden soll. Beispiel 10507,091345 als Zahl.
Habe die Suche aufgezeichnet mit dem Recorder.
Da die Zahlen alle das gleiche vormat haben, habe ich das auch beim Finden eingestellt, so werden alle gefunden bis zum Abbruch.
Die Zahlen die Gesucht werden sollen haben das Format 10203,040506 dürfte unintresant sein.
Ich wis nicht was Block-Variable oder With-Variable ist.
Das ist das Problem.
Gruß Aton
PS Nutzt dir diese Antwort etwas?
Anzeige
AW: Find Funktion
14.04.2009 22:02:08
Aton
Hallo
Wie schaltet man Formeln aus.
Wie Teile des inhaltes.
Die Zahlen sind immer vorhanden und werden gefunden bis zum Abbruch.
Auch die Zahl bei der der Fehler kommt ist vorhanden aber wird nicht gefunden.
hängt auch nicht mit gelöschten Zahlen zusammen. Hab sie Probeweise durch 10000,000001 ersetzt.
kommt auch Fehler 91 bei gleicher Zahl.
Gruß Aton
AW: Find Funktion
14.04.2009 22:41:55
Gerd
Hallo Aton,
hier mal ein Beispiel für Wiederholungssuche. Weitere findest Du beim Googlen
jede Menge.
' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************
Option Explicit

Sub Übertrage_nach_ÜbersichtApfel()
Dim strSuch As String
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Dim lngRow As Long
Dim rngSuchBereich As Range
Dim firstAddress As String
Dim C As Range
strSuch = "Apfel"
Set wksZiel = ThisWorkbook.Worksheets("ÜbersichtApfel")
wksZiel.UsedRange.ClearContents
lngRow = 1
For Each wksQuell In ThisWorkbook.Worksheets
If wksQuell.Name  wksZiel.Name Then
Set rngSuchBereich = wksQuell.Range("F1:" & wksQuell.Range("F65536").End(xlUp).Address)
With rngSuchBereich
Set C = .Find(what:=strSuch, lookat:=xlWhole, LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
wksZiel.Rows(lngRow) = wksQuell.Rows(C.Row).Value 'Was bei Treffer  _
gemacht wirdl
lngRow = lngRow + 1
End If
Set C = .FindNext(C)
Loop While C.Address  firstAddress
End If
End With
End If
Next
End Sub


Gruß Gerd

Anzeige
AW: Block- oder Wiht Variable was ist das
14.04.2009 22:49:48
Aton
Hallo
Es wird immer eine andere Komma-Zahl gesucht.
es ist jede Zahl vorhanden, aber nur 1 mal.
Leider sagt mir der Fehler-Meldung nichts.
Block-Variable oder with Variable.
Was machen diese beiden Variablen, in der Hilfe nichts gefunden
AW: Find Funktion
14.04.2009 22:45:21
Nepumuk
Hallo Aton,
Objektvariable oder With-Blockvariable nicht festgelegt.
Das ist eine leere Objektvariable bei der du eine Eigenschaft lesen oder schreiben willst, bzw. auf die du eine Methode anwenden willst.
Mit Set Rng = ... verweist du ein Objekt an die Variable Rng. Wenn nun die Find-Methode nichts mehr findet, dann liefert sie Nothing zurück. Und du willst von Nothing die Zeilennummer haben. Das geht natürlich nicht und erzeugt den Fehler 91.
Du hast, wie ich sehe keinerlei Abfrage drin, ob überhaupt etwas gefunden wurde. Und wie schon geschrieben, mit deinen drei Zeilen kann man nicht viel anfangen. Schau dir am besten mal die Hilfe zur Find-Methode an. Da ist ein schönes Beispiel dabei.
Gruß
Nepumuk
P.S. Klick nächstes mal beim Level auf "VBA nur mit Recorder", dann erwartet man schon gar nicht soviel vom Fragesteller. Bei "VBA gut" solle man nämlich wenigstens die Hilfe lesen können.
Anzeige
AW: Find Funktion
14.04.2009 22:59:27
Aton
Hallo
die Zahl ist immer vorhanden auch mit Leren cellen hat es nichts zu tun.
Das format ist gleich.
Die Hilfe steht leider nichts Brauchbares.
Celle 1,4 wird die gesuchte zahl eingetragen.
beim fund kommt es auf zeile und spalte an, entweder sie wird geändert oder gelöscht.
Es leuft lange ca 150 funde dan bricht es ab. keine variable ohne falschen wert.
e3r findet einfach die vorhandene zahl nicht. kann das pasieren wen der Start zur suche hinter dem
Suchbegiff ist.
Guß Aton
AW: Find nix
14.04.2009 23:14:52
Gerd
Hallo Aton,
lade mal eine kleine Beispielmappe mit deinem bisherigen Code hoch,
am besten nach Downgrade als xls-Datei.
Gruß Gerd
Anzeige
AW: Suchcelle um 3 Neuner erweitert
14.04.2009 23:39:17
Aton
Hallo
Jetzt hab ich das Problem
Bei der Suchcelle sind 3 Neuner hinter der 6.Stelle nach dem Konma.
Wo die herkommen ist mir Schleierhaft.
kann man da ein if Then Stop einbauen.
wie kann ich diese Zahl auf 6 Stellen runden
Cell 1,4 = 10203,040505999 in
Cell 1,4 = 102030,40506 ohne 999 und 5 vor 999 auf 6
ggruß bwe
AW: Suchcelle um 3 Neuner zusatz
14.04.2009 23:48:00
Aton
Hallo
änderungen in der Celle werden zur allten Zahl korigiert.
auch wenn ich sie neu eingebe.
Weis jemand wie ich dise Celle auf 6 kommastellen begrenzen kann im Makro
Gruß Aton
AW: mit round
15.04.2009 01:31:09
hary
Hi Aton
versuch mal

Cells(1, 4) = WorksheetFunction.Round(Cells(1, 4), 6)


Gruss hary

Anzeige
AW: @ Nepumuk FindFormat?
15.04.2009 10:20:52
Erich
Hi Max,
deine Frage:
Warum müssen die Zellen das selbe Format haben wie die Zelle mit dem Suchbegriff? SearchFormat:=True
habe ich nicht verstanden.
IMHO dient der Find-Parameter SearchFormat dazu, die Suche auf bestimmte Formate einzugrenzen oder nicht.
Die "bestimmten Formate" werden vorher in der Application.FindFormat-Eigenschaft abgelegt,
per VBA oder manuell im Excel-Suchen-Dialog.
Man kann ja auch nur nach Formaten suchen - ohne Vorgabe eines Suchbegriffs.
Mit dem Format des Suchbegriffs hat das m. E. gar nichts zu tun. Hier wird von Cells(1, 4) nur der Wert verwendet.
Verstehe ich das jetzt falsch?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Find Funktion
15.04.2009 08:17:41
Tino
Hallo,
wenn Du ein deutsches Excel verwendest, würde ich die Zahl als String angeben und dass Komma durch einen Punkt ersetzen.
Sonst kann es schnell mal geschehen, dass aus dem Komma ein Semikolon wird, habe ich mal durch Zufall bei Verwendung von Doubel- Werten festgestellt.
Beispiel:
Sub test()
Dim Rng As Range
Dim Ze As Long
Dim Sp As Long
Dim SWert As String

Ze = 2
Sp = 1

SWert = Replace(CStr(Cells(1, 4)), ",", ".")

Set Rng = Range("A2:HF65536").Find(SWert, Cells(Ze, Sp), xlFormulas, 2, 1, 1, False, False, False)
If Rng Is Nothing Then
    Ze = Rng.Row
    Sp = Rng.Column
End If

End Sub


Gruß Tino

Anzeige
AW: Find Funktion Danke für die Hilfe
15.04.2009 16:56:20
Aton
Hallo Excel-Freunde
Das eigentliche Problem ist:
6 Zahlen von 13.000.000 Werten lasen sich nicht um +10101,010101 erhöhen. Si bringen den Rundungsfehler in die Suchcelle 1,4 .
Letzte Zahl 1 weniger, dafür mit 999 mehr in den Stellen.
Dadurch wurde die Zahl nicht mehr gefunden, da sie ja nicht gleich war sonden 0,000000001 kleiner ist.
in der Anzeige viel mir das nicht auf weil sie auf 6 Stellen begrenzt ist.
Beheben konte ich den Fehler nicht, Weil Excel diese 6 Zahlen immer Abrundet wenn man sie Eingibt.
Hab das Problem gelöst durch versetzen des Komas um 4 Stellen nach Links. 2 Stellig macht er diesen
Rundungs-Fehler nicht, ( Liegt vieleicht an der Standard Einstellung.
Mit 2 Sellen Leuft es Fehler frei und sogar etwas schneller.
Guß Aton und nochmals Danke an alle.
Anzeige
AW: Find Funktion Danke für die Hilfe
16.04.2009 11:00:07
Tino
Hallo,
Du kannst bei einem String hinten noch einen Stern als Platzhalter verwenden um Rundungsfehler abzufangen.
Beispiel:
Sub test()
Dim Rng As Range
Dim Ze As Long
Dim Sp As Long
Dim SWert As String

Ze = 2
Sp = 1

SWert = Replace(CStr(Cells(1, 4)), ",", ".") & "*"

Set Rng = Range("A2:HF65536").Find(SWert, Cells(Ze, Sp), xlValues, 2, 1, 1, False, False, False)
If Not Rng Is Nothing Then
    Ze = Rng.Row
    Sp = Rng.Column
End If

End Sub


Gruß Tino

Anzeige
AW: Danke für die Hilfe
16.04.2009 20:40:54
Aton
Hallo
Ja das Funktioniert so wie ich es möchte.
Vielen Dank für die Hilfe
Gruß Aton

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige