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

unzulässiger/nicht ausreichend definierter Ve

unzulässiger/nicht ausreichend definierter Ve
07.10.2003 20:31:07
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
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: unzulässiger/nicht ausreichend definierter Ve
08.10.2003 07:40:15
Willie
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

Anzeige
AW: unzulässiger/nicht ausreichend definierter Ve
08.10.2003 10:50:34
Peppi
Hallo,

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

Vielen Dank nochmal.

Gruß
Peppi
funktioniert leider nicht
08.10.2003 11:39:08
Peppi
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
Anzeige

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige