Temat: Wyszukiwanie w całym skoroszycie

Witam
Mam kod który wyszukuje mi wartość ale tylko w jednym arkuszu.
Jak go przekształcić aby wyszukiwało w całym skoroszycie ?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range

If Target.Address<> "$T$40" Then Exit Sub
Application.FindFormat.Clear
Set rng = Me.Range("A4:P136").Find(Target.Text, LookAt:=xlWhole)
If Not rng Is Nothing Then
rng.Select
Else
MsgBox "Nie znaleziono wartości"
End If
End Sub
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Wyszukiwanie w całym skoroszycie

Pierwsza linijka i tak ogranicza te wyszukanie do sprawdzenie wypełnienia jednej konkretnej komórki - potem na podstawie porównania tego czy zaznaczona jest tożsama z T40 jest sprawdzany jedynie fragment A4:P136. Jeśli chcesz przeprowadzić szukanie na innych arkuszach tego samego obszaru to musisz przypisać do zakresu rng dodatkowo konkretny arkusz (nie Me) bo to akurat jest błąd/albo tzw znaczne uproszczenie.

To iż arkusz ten ma być inkrementowany z kolekcji workbooks to wypada wykonać pętlę w której te przypisanie rng będzie zawarte. No i na końcu - skoro masz w kodzie .select to jak to się będzie miało do wszystkich arkuszy, skoro na ekranie jednocześnie możesz tylko się przenieść do jednego?
Należałoby iść w stronę producenta i obsłużyć to listą sugerującą wyniki (Ctrl+H -> Znajdź wszystko) aby pokazać zakresy w których jest szukana wartość, zamiast przechodzić do pierwszej.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Wyszukiwanie w całym skoroszycie

Analogia twojego problemu jest w jednym z moich gotowych rozwiązań, na którym możesz się wzorować lub zdecydować na jego wdrożenie: http://vbatools.pl/znajdowanie-i-przechodzenie/

Temat: Wyszukiwanie w całym skoroszycie

Dzięki
Będę kombinował z tym kodem dalej :)



Wyślij zaproszenie do