suchen, Arbeitsblätter auslassen

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

Betrifft: suchen, Arbeitsblätter auslassen
von: Peppi
Geschrieben am: 07.10.2003 16:04:38

Hallo,


ich habe mir eine suchfunktion ersellt, die nach Abfrage eines Suchbegriffs alle verwendeten Bereiche aller Arbeitsblätter durchläuft. Ich möchte aber, dass das das erste Arbeitsblatt, genannt 'Übersicht' ausgelassen wird. Die bisherige Suche habe ich folgend realisiert (Auszug).

Würde mich freuen, wenn mir da jemand helfen kann.


Gruß
Peppi



Private Sub Suche(strSuchtext As String)
    Dim SuchKatalogblattName As String
    Dim objBlatt As Worksheet
    Dim objSuchKatalogblatt As Worksheet
    Dim objZelle As Range
    Dim objZeile As Range
    Dim strErsteFundstelle As String
    Dim intButton As Integer
    Dim objForm As UserForm
    Dim strSuchtext2 As String
    
                    'wir kommen hier von der Public Sub Suchen() aus hin
                    'Prüfen, ob SuchKatalogblatt bereits existiert
                    Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
                    'Wenn SuchKatalogblatt nicht existiert, dann...
                    'If 1
                    If objSuchKatalogblatt Is Nothing Then
                    '******
                    '******
                        '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
                                    'Neues Katalogblatt anlegen
                                    Set objSuchKatalogblatt = Worksheets.Add(After:=Worksheets(Worksheets.Count))
                                    'Suchtext bildet Namen des SuchKatalogblattes
                                    objSuchKatalogblatt.Name = strSuchtext
                                   '********************************
                                   '***SuchKatalogblatt gestalten***
                                   '********************************
                                   'SuchKatalogblatt gestalten
                                   With objSuchKatalogblatt
                                   'Spaltenformatierungen festlegen
                                   .Columns(1).ColumnWidth = 10
                                   .Columns(2).ColumnWidth = 26
                                   .Columns(3).ColumnWidth = 24
                                   .Columns(4).ColumnWidth = 7
                                   .Columns(5).ColumnWidth = 24
                                   .Columns(6).ColumnWidth = 26
                                   .Columns("A").NumberFormat = "0000"
                                   .Columns("B").NumberFormat = "0000"
                                   .Columns("C").NumberFormat = "00"
                                   'Zeileninhalte und -formatierungen festlegen
                                   'Alle Zellinhalte links ausrichten
                                   .Rows.HorizontalAlignment = xlLeft
                                   With .Rows(1)
                                   .Cells(1).Value = "CD-Nummer:"
                                   .Cells(1).Font.Size = 8
                                   .Cells(1).Font.Bold = True
                                   End With
                                   With .Rows(1)
                                   .Cells(2).Value = "CD-Seite:"
                                   .Cells(2).Font.Size = 8
                                   .Cells(2).Font.Bold = True
                                   End With
                                   With .Rows(1)
                                   .Cells(3).Value = "Künstler:"
                                   .Cells(3).Font.Size = 8
                                   .Cells(3).Font.Bold = True
                                   End With
                                   With .Rows(1)
                                   .Cells(4).Value = "Album:"
                                   .Cells(4).Font.Size = 8
                                   .Cells(4).Font.Bold = True
                                   End With
    
       End With
                                    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
                                       'If 2
                                    End If
                            End With
                        Next
        MsgBox "Keine weiteren Fundstellen.", vbInformation, APP_NAME
        'Fragen, ob das Suchkatalogblatt geöffnet werden soll
        intButton = MsgBox("Das Suchkatalogblatt öffnen?33", vbQuestion + vbYesNo, APP_NAME)
        'Wenn die Antwort nicht 'Ja' lautet, dann...
        'If 015
        If intButton <> vbYes Then
            'Infofenster mit "Suche beendet!" öffnen und...
            MsgBox "Suche beendet3!", vbInformation, APP_NAME
            '...Makro beenden
            Exit Sub
         'If 015
         Else
             'Suchkatalogblatt aktivieren
             objSuchKatalogblatt.Activate
             Exit Sub
         'If 015
         End If
    'If 001
    End If
    End Sub

Bild


Betrifft: AW: suchen, Arbeitsblätter auslassen
von: ChrisL
Geschrieben am: 07.10.2003 16:10:05

Hi Peppi

If objBlatt.Name <> "Übersicht" Then

' Dein Suchmakro

End If


Bild


Betrifft: AW: suchen, Arbeitsblätter auslassen
von: Peppi
Geschrieben am: 07.10.2003 16:52:17

Vielen Dank,

dumm von mir. Das hätte mir auch selbst einfallen können.
Vielen Dank.

Gruß
Peppi


Bild


Betrifft: Nachfrage
von: Peppi
Geschrieben am: 07.10.2003 17:23:40

Hallo, hätte da noch eine Nachfrage. Habe das nun so umgestzet, allerdings bekomme ich immer die Fehlermeldung:

Objektvariable oder With-Blockvariable nicht festgelegt.

Was hab ich falsch gemacht?

Vielen Dank

Gruß
Peppi


Bild


Betrifft: AW: Nachfrage
von: ChrisL
Geschrieben am: 07.10.2003 17:28:36

Hi Peppi

Die Variable objBlatt wird erst hier...

For Each objBlatt In ActiveWorkbook.Worksheets

... definiert. Vermutlich hast du die If Abfrage vorher eingefügt.

Gruss
Chris


Bild


Betrifft: AW: Nachfrage
von: Peppi
Geschrieben am: 07.10.2003 19:30:57

Hallo,

vielen Dank.

Ich habe zwar noch nicht nachgesehen, aber ich glaube daran liegt es. Ich habe die If-Abfrage ganz an den Anfang gestellt.

Vielen Dank für die Hilfe.

Gruß
Peppi


 Bild

Beiträge aus den Excel-Beispielen zum Thema " suchen, Arbeitsblätter auslassen"