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

nicht ausreichend definierter Verweis

nicht ausreichend definierter Verweis
08.10.2003 17:42:46
Peppi
Hallo,

ich habe mir eine Suchroutine gebastelt, aber bekomme da immer eine Fehlermeldung. Mit dem Code zwischen den Sternchen rufe ich eine Suchroutine auf und rufe dann mit 'call' die '

Private Sub Suchroutine' auf. Die soll dann für die weitere Suche sorgen. Allerdings bekomme ich immer die Fehlermeldung "unzulässiger oder nicht ausreichend definierter Verweis" Dabei ist '.FindNext' makiert.
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Gruß
Peppi
'Alle Blätter durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheets
'Verwendeten Bereich jedes Blatts durchsuchen
With objBlatt.UsedRange
'Suchfunktion aufrufen
Set objZelle = .Find(What:=strSuchtext, LookIn:=xlValues)
'Wenn erster Treffer, dann...
'If 2
If Not objZelle Is Nothing Then
'... Fundstelle merken
strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
Call Suchkatalogblattanlegen(strSuchtext, strErsteFundstelle, objBlatt,
objZelle)
Exit Sub

Private Sub Suchroutine(strSuchtext As String, strErsteFundstelle As String, objBlatt As
Worksheet, objZelle As Range)
Dim objSuchKatalogblatt As Worksheet
Dim intButton As Integer
Dim objForm As UserForm
Do
'Blatt mit Fundstelle aktivieren
objBlatt.Activate
'Fundstelle markieren
objZelle.Select
'Anwender fragen, ob Suche fortgesetzt werden soll
intButton = MsgBox("Weiter suchen?", vbQuestion + vbYesNo, APP_NAME)
'Wenn Antwort nicht 'Ja' lautet, dann...
'If 010
If intButton <> vbYes Then
'Fragen, ob das Suchkatalogblatt geöffnet werden soll
intButton = MsgBox("Das Suchkatalogblatt öffnen?22", vbQuestion + vbYesNo, APP_NAME)
'Wenn die Antwort nicht 'Ja' lautet, dann...
'If 016
If intButton <> vbYes Then
'Infofenster mit "Suche beendet!" öffnen und...
MsgBox "Suche beendet3!", vbInformation, APP_NAME
'...Makro beenden
Exit Sub
'If 016
Else
'Suchkatalogblatt aktivieren
objSuchKatalogblatt.Activate
'Makro beenden
Exit Sub
'If 010
End If
'If 016
End If
'Nach nächstem Vorkommen suchen
'****'.FindNext' ist bei der Fehlermeldung immer makiert****
Set objZelle = .FindNext(objZelle)
'Schleife wiederholen solange weitere Fundstellen auftauchen und erste Fundstelle noch nicht
erreicht
Loop While Not objZelle Is Nothing And objBlatt.Name & "!" & objZelle.Address <>
strErsteFundstelle
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nicht ausreichend definierter Verweis
08.10.2003 17:56:42
Nepumuk
Hallo Pepi,
die Anweisung: Set objZelle = .FindNext(objZelle) verweist auf die Anweisung: With objBlatt.UsedRange aus dem aufrufenden Makro. Das kann so nicht gehen, da musst du den Range nicht nur mitgeben sondern auch neu darauf verweisen.
Gruß
Nepumuk
AW: nicht ausreichend definierter Verweis
08.10.2003 18:32:40
Peppi
Hallo,

vielen Dank. Ich glaube es funktioniert jetzt.

Vielen Dank.

Gruß
Peppi
läuft noch nicht so ganz
08.10.2003 19:21:04
Peppi
Hallo,

leider funktioniert es doch noch nicht so wie ich es will. Alles läuft bis zur Infobox 'Kontrolle'. Nach dem man mit OK bestätigt hat, springt man aus dem Makro. Er sucht einfach nciht weiter.

Würde mich freuen, wenn jemand den Fehler findet.

Gruß

Peppi

'Verwendeten Bereich jedes Blatts durchsuchen
With objBlatt.UsedRange
'Hier kommt man von Suchkatalogblattanlegen aus hin

Do
'Blatt mit Fundstelle aktivieren
objBlatt.Activate
'Fundstelle markieren
objZelle.Select
'Anwender fragen, ob Suche fortgesetzt werden soll
intButton = MsgBox("Weiter suchen?", vbQuestion + vbYesNo, APP_NAME)
'Wenn Antwort nicht 'Ja' (NEIN) lautet, dann...
'If 010
If intButton <> vbYes Then
'Fragen, ob das Suchkatalogblatt geöffnet werden soll
intButton = MsgBox("Das Suchkatalogblatt öffnen?22", vbQuestion + vbYesNo, APP_NAME)
'Wenn die Antwort nicht 'Ja' lautet, dann...
'If 016
If intButton <> vbYes Then
'Infofenster mit "Suche beendet!" öffnen und...
MsgBox "Suche beendet3!", vbInformation, APP_NAME
'...Makro beenden
Exit Sub
'If 016
Else
'Suchkatalogblatt aktivieren
objSuchKatalogblatt.Activate
'Makro beenden
Exit Sub
'If 016
End If
'If 010
End If
MsgBox "Kontrolle", vbInformation, APP_NAME
'Nach nächstem Vorkommen suchen
Set objZelle = .FindNext(objZelle)
'Schleife wiederholen solange weitere Fundstellen auftauchen und erste Fundstelle noch nicht erreicht
Loop While Not objZelle Is Nothing And objBlatt.Name & "!" & objZelle.Address <> strErsteFundstelle
End With
End Sub
Anzeige
AW: läuft noch nicht so ganz
08.10.2003 20:00:18
Nepumuk
Hallo Pepi,
ich habe das noch nie versucht, aber soweit ich weiß, basiert die Methode Findnext auf die Find - Methode. Dann setz doch die Suche komplett neu auf und ignoriere die mit den Parametern in der Call - Anweisung übergebene erste Adresse (strErsteFundstelle).
Gruß
Nepumuk

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige