Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Objektvariable oder With-Blockvariable nicht festg


Betrifft: Objektvariable oder With-Blockvariable nicht festg von: Steve
Geschrieben am: 16.04.2017 10:24:25

Hallo Profis.......frohe Ostern und schönen Tag.

Hätte mal wieder ein kleines Problem:
Möchte einen Suchbutton einarbeiten der alle Tabellenblätter nach (Begriffen, Namen, Zahlen,usw.) durchsucht.

Hier der von mir im Netz gefundene Code:

Public Sub SearchAllTables()
    Dim ws As Worksheet
    Dim c As Range
    Dim firstAddress As String
    Dim secAddress As String
    Dim GFound As Boolean
    Dim GWeiter As Boolean

    GWeiter = False
    GFound = False
anf:
    SSearch = InputBox("Geben sie einen Namen/Einheit/Begriff ein:", "Suchen in alle Tabellen",  _
 _
SSearch)

    If SSearch = "" Then
        End
    End If
weiter:
    For Each ws In Worksheets

        With ws.Cells
            Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
            If Not c Is Nothing Then
                GFound = True
                ws.Select
                c.Select
    firstAddress = c.Address
                If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
                                                                    Do
                                                                    Set c = .FindNext(c)
   
    secAddress = c.Address
                        If c.Address = firstAddress Then
                            Exit Do
                        End If
                        c.Select
                        If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
                            GWeiter = True
                            GoTo ende
                        End If
                    Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <>  _
 _
firstAddress
                Else
                    GWeiter = True
                    GoTo ende
                End If
            End If
        End With
    Next ws

ende:

    If GFound = False Then
        If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes  _
Then
            GoTo anf:
        End If
    Else
        If GWeiter = False Then
            If MsgBox("Sie haben alle Tabellenblätter durchsucht ! Soll die Suche neu gestartet  _
 _
werden ?", vbInformation + vbYesNo) = vbYes Then
                GoTo weiter
            End If
        End If
    End If

End Sub


Bei folgenden Stellen:

firstAddress = c.Address

und
secAddress = c.Address

bricht er teilweise ab und der Debugger zeigt an

> Objektvariable oder With-Blockvariable nicht festgelegt>

Bitte um Lösung was da falsch ist???

Danke im voraus für die Mühen und mfg
STeve

  

Betrifft: AW: Objektvariable oder With-Blockvariable nicht festg von: Hajo_Zi
Geschrieben am: 16.04.2017 10:40:05

in meiner Datei wird kein Fehler ausgelöst, das mag daran liegen das meine Datei anders aussieht und das ich nach was anderem Suche als Du.

Man sollte alle Variablen vor der ersten Verwendung definieren.

GrußformelHomepage


  

Betrifft: AW: Objektvariable oder With-Blockvariable nicht festg von: Steve
Geschrieben am: 16.04.2017 10:49:09

Guten Morgen Hajo
Danke für schnelle Antwort.

Wie kann das sein dass bei der einen Suche (String) es geht und bei der anderen (auch String) nicht??
Die Variablen habe ich alle definiert - vielleicht ist
Dim c As Range
falsch?

Danke


  

Betrifft: AW: Objektvariable oder With-Blockvariable nicht festg von: Hajo_Zi
Geschrieben am: 16.04.2017 10:54:08

Mein Excel sieht das wohl anders als Deins. Meins meint "SSearch" ist nicht definiert.
Ich bin dann raus da mein Excel wohl anders ist und da ich nicht auf fremde Rechner schaue.

Gruß Hajo


  

Betrifft: AW: Objektvariable oder With-Blockvariable nicht festg von: Steve
Geschrieben am: 16.04.2017 11:02:22

Sorry SSearch ist ganz oben definiert als:

Option Explicit
Global SSearch As String

mfg


  

Betrifft: AW: Objektvariable oder With-Blockvariable nicht festg von: Steve
Geschrieben am: 16.04.2017 10:59:59

Das Problem liegt bei

c.Address Objektvariable oder With-Blockvariable nicht festgelegt

Beim Start der Suche findet er den ersten Begriff - bei Weitersuche debuggt er??

mfg


  

Betrifft: AW: keine Meldung von: MB12
Geschrieben am: 16.04.2017 11:21:13

Hallo Steve

hab das Makro unter Excel 2010 und 2013 getestet - läuft bei mir problemlos durch.

Lade doch mal eine abgespeckte /anonymisierte Version deiner Datei hoch, vielleicht fällt jemandem was auf.

Schönen Sonntag, Margarete


  

Betrifft: Datei wurde jetzt hochgeladen von: Steve
Geschrieben am: 16.04.2017 12:44:16

Hallo.... so jetzt hab ich eine anonymisierte Datei hochgeladen.

https://www.herber.de/bbs/user/112905.xlsm

Bei der Eingabe des Begriffes

suchst

macht der Button genau was er soll. Geht alle Tabellen durch zeigt die Zelle an.

Jetzt fällt mir auf

dass beim suchbegriff

landes

es nicht auf die weiteren Tabellenblätter springt und sondern beim ersten Treffer hängen bleibt.

Kann das an der Formatierung (mehrere Zellen verbunden) liegen??

Bitte um Ideen Vorschläge oder Korrekturen.
Danke


  

Betrifft: Fehler selbst gefunden von: Steve
Geschrieben am: 16.04.2017 14:01:40

Hallo habe den Fehler selbst gefunden.

Wenn die Suche auf verbundene Zellen trifft dann gibt es Absturz.

Somit erledigt.

Danke und schönen Sonntag noch.
STeve


  

Betrifft: Danke an Hajo und Margarete von: Steve
Geschrieben am: 16.04.2017 14:04:08

Schönen Ostersonntag noch

mfg Steve


  

Betrifft: AW: gerne; manchmal..... von: MB12
Geschrieben am: 16.04.2017 14:39:09

...braucht man nur einen Such-Anstoß

Gruß, Margarete


  

Betrifft: das liegt aber nicht an den Verbundzellen owT von: Matthias L
Geschrieben am: 16.04.2017 15:34:36




  

Betrifft: AW: das liegt aber nicht an den Verbundzellen owT von: Steve
Geschrieben am: 16.04.2017 20:21:49

Hallo Matthias.

Habe bei meiner Orginaldatei nun alle verbundenen Zellen wieder getrennt.
Ganz schön Arbeit bei 25 Tabellenblättern und pro Blatt einige verbundenen Zellen.

Jetzt klappt es.............

Glaube er erkennt die Variable:

c.Address

bei der "weitersuchen" nicht!!!

Aber wenn du eine Idee hast was beim Code falsch ist ..bitte erklären.
Danke


  

Betrifft: AW: das liegt aber nicht an den Verbundzellen owT von: Matthias L
Geschrieben am: 16.04.2017 21:06:34

Hallo

Der VBA-Fehler tritt bei mir nur auf, wenn es keinen 2.Eintrag in dem Sheet gibt
Der Fairnishalber muss ich aber zugeben nicht besonders ausgiebig getestet zu haben.
Es ist ja Ostern ;-)

Ich hab mal nur eine 2 MsgBox-Ausgaben eingebaut

    For Each ws In Worksheets

        With ws.Cells
            Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
            If Not c Is Nothing Then
                GFound = True
                ws.Select
                c.Select
                MsgBox c.Address
    firstAddress = c.Address
                If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
                                                                    Do
                                                                    Set c = .FindNext(c)
                                                                    MsgBox c.Address


Die Zelle mit dem Suchbegriff wird mir ja angezeigt.
Wobei mir aber auffällt das ws.Select nur in der 1.Schleife programmiert ist.

Aber egal, wenn es ohne Verbundzellen jetzt geht, dann lass es einfach so.

Gruß Matthias


  

Betrifft: AW: das liegt aber nicht an den Verbundzellen owT von: Steve
Geschrieben am: 16.04.2017 23:20:36

Hallo Matthias
Danke für deine Mühen.

Der erste Treffer wird immer angezeigt - auch bei verbundenen Zellen - aber dann Absturz.
Habe nochmal einige Blätter umgeschrieben - geht dann aber nicht mehr.
Es muss also mit der Verbindung zusammenhängen.

ws.Select wurde auch in die zweite Schleife eingetragen - Danke

Schöne Ostern noch.
mfg STeve


  

Betrifft: so gehts auch mit Verbundzellen ... von: Matthias L
Geschrieben am: 17.04.2017 09:28:15

Hallo

Habs mir nochmal angeschaut.
So gehts jetzt auch mit Verbundzellen.

https://www.herber.de/bbs/user/112918.xlsm

Gruß Matthias