Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: lexipator am Juni 29, 2016, 11:49:46 Vormittag

Titel: Office 2010: Such-Makro nur auf eine Spalte anweisen
Beitrag von: lexipator am Juni 29, 2016, 11:49:46 Vormittag
Hey,
ich bin, was Makros o.ä. angeht, blutiger Anfänger.
Ich habe mir aus dem Internet ein Such-Makro für nen Button rausgesucht, funktioniert auch super, aber:
Ich würde es gern nur eine Spalte (D) eines Blattes durchsuchen lassen, anstatt die ganze Tabelle, da die gesuchten Werte auch an anderer, unwichtiger Stelle auftreten können.

Kann mir wer helfen?
Danke!

Public Sub SearchAllTables()
    Dim ws As Worksheet
    Dim c
    Dim firstAddress As String
    Dim secAddress
    Dim GFound As Boolean
    Dim GWeiter As Boolean
   
    GWeiter = False
    GFound = False
anf:
    SSearch = InputBox("Suchen nach:", "Search In All Tables", SSearch)
   
    If SSearch = "" Then
        End
    End If
weiter:
    For Each ws In Worksheets
        'ws.Select
        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
Titel: Antw:Office 2010: Such-Makro nur auf eine Spalte anweisen
Beitrag von: lexipator am Juli 27, 2016, 11:30:51 Vormittag
niemand eine Idee?
Titel: Antw:Office 2010: Such-Makro nur auf eine Spalte anweisen
Beitrag von: gmg-cc am Juli 27, 2016, 11:56:11 Vormittag
Moin,
ich denke, dass es anderen Profis ähnlich geht wie mir: Alle drei Sprung-Adressen (anf:, weiter:, ende:) sind in dieser Form nicht nötig, ich empfinde sie als unsauberen Programmierstil. Es sind noch weitere Ungereimtheiten drin … Und da geh ich erst einmal gar nicht dabei. - Wenn meine Kunden mir so etwas präsentieren, gibt es für mich 2 Möglichkeiten: Neu schreiben oder einen Kollegen zu suchen empfehlen, der sich daran die Finger verbrennen will.

Prinzipiell finde ich es sehr gut, dass du dir die Mühe gemacht hast, einen "halbwegs" passenden Code im Netz zu finden und auf deine Bedürfnisse anzupassen. Das ist Engagement, welches ich bei sehr vielen Fragestellern in diversen Foren einfach vermisse. Als erste Möglichkeit würde ich versuchen, mit dem Verfasser des Codes Kontakt aufzunehmen, der sollte am ehesten wissen, wie das auf deine Bedürfnisse anzupassen ist.