Das Archiv des Excel-Forums

unzulässiger/nicht ausreichend definierter Ve

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: unzulässiger/nicht ausreichend definierter Ve
von: Peppi

Geschrieben am: 07.10.2003 20:31:07

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
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

Bild


Betrifft: AW: unzulässiger/nicht ausreichend definierter Ve
von: Willie
Geschrieben am: 08.10.2003 07:40:15

Hallo Peppi versuchs mal damit das habe ich auch aus dem Forum...
Gruß Willie

Public

Sub suchen()
Dim Zelle As Range, Suchbegriff As String, Adresse As String, zaehler As Integer
Dim index As Integer, Feld() As String, Tabelle() As Integer, Zeile_Spalte() As String
Suchbegriff = InputBox("Suchbegriff eingeben", "Eingabe")
If Suchbegriff <> "" Then
For index = 1 To Worksheets.Count
With Sheets(index).Cells
Set Zelle = .Find(What:=Trim(Suchbegriff), LookAt:=xlPart)
If Not Zelle Is Nothing Then
Adresse = Zelle.Address
Do
zaehler = zaehler + 1
ReDim Preserve Feld(1 To zaehler)
ReDim Preserve Tabelle(1 To zaehler)
ReDim Preserve Zeile_Spalte(1 To zaehler)
Feld(zaehler) = Sheets(index).Name & " Spalte " & Zelle.Column & " Zeile " & Zelle.Row
Tabelle(zaehler) = index
Zeile_Spalte(zaehler) = Zelle.Address
Set Zelle = .FindNext(Zelle)
Loop While Not Zelle Is Nothing And Zelle.Address <> Adresse
End If
End With
Next
If zaehler > 0 Then
If MsgBox(Suchbegriff & " wurde " & CStr(zaehler) & " mal gefunden." & vbNewLine & "Fundstellen anzeigen?", 68, "Information") = 7 Then Exit Sub
Do
For index = 1 To zaehler
Sheets(Tabelle(index)).Select
Range(Zeile_Spalte(index)).Select
ActiveWindow.ScrollColumn = Selection.Column
ActiveWindow.ScrollRow = Selection.Row
If zaehler = 1 Then Exit Sub
If index < zaehler Then
If MsgBox(CStr(index) & ". Fundstelle von " & CStr(zaehler) & ": " & Feld(index) & vbNewLine & "Weitere anzeigen?", 68, "Information") = 7 Then Exit Sub
Else
If MsgBox(CStr(index) & ". Fundstelle von " & CStr(zaehler) & ": " & Feld(index) & vbNewLine & "Nochmal anzeigen?", 68, "Information") = 7 Then Exit Do
End If
Next
Loop
Else
MsgBox Suchbegriff & " wurde nicht gefunden", 64, "Information"
End If
End If
End Sub



Bild


Betrifft: AW: unzulässiger/nicht ausreichend definierter Ve
von: Peppi
Geschrieben am: 08.10.2003 10:50:34

Hallo,

vielen Dank, ich werde es nachher auch mal damit versuchen.

Vielen Dank nochmal.

Gruß
Peppi


Bild


Betrifft: funktioniert leider nicht
von: Peppi
Geschrieben am: 08.10.2003 11:39:08

Hallo,

ich habe es mal versucht, ist ja fast so, wie ich es schon habe, aber leider funktioniert es nicht so wie ich es möchte. Ich bekomme immer noch die gleiche Fehlermeldung.
In der ersten Sub Hab ich ja folgendes stehen:

strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
Call Suchkatalogblattanlegen(strSuchtext, strErsteFundstelle, objBlatt, objZelle)

In der, die dann aufgerufen wird, also 'Suchkatalogblattanlegen':

Set objZelle = .FindNext(objZelle)
'Schleife wiederholen solange weitere Fundstellen auftauchen und erste nicht erreicht
Loop While Not objZelle Is Nothing And objBlatt.Name & "!" & objZelle.Address <> strErsteFundstelle

Bei dem FindNext bringt er dann die Fehlermeldung.
Würde mich freuen, wenn jemandem noch eine andere Lösung einfallen würde.

Gruß
Peppi


 Bild