tester la fonction rechercher

S

STEF

Guest
Bonjour à tous
Je cherche à tester le résultat de la fon selection.find (équivalent de 'Edition\Rechercher'. Sauriez vous comment faire : En clair, il faut savoir si le résultat est positif (et surtout) ou non... Il parait que c'est Nothing mais ca marche pas niquel..
Merci d'avance.
Stef
 
S

Stéphane

Guest
bonjour

je vais coller un ou plusieurs exemples qui t'aideront

Dim FoundCell As Range
Set FoundCell = Range("A1:A10").Find(what:="XXX")
If Not FoundCell Is Nothing Then
FoundCell.Select
End If


Sélectionner la première cellule de la colonne B contenant le mot "Zaza" : [B:B].Find("Zaza", Range("B1")([B:B].Count), xlValues, xlWhole, , xlNext, False).Select
Sélectionner la dernière cellule de la colonne B contenant le mot "Zaza" : [B:B].Find("Zaza", [B1], xlValues, xlWhole, , xlPrevious, False).Select



'macro pour coller les adresses des cellules contenant votre recherche
Sub coller_adresses_recherche
Set ZoneDeSortie = Sheets("Feuil3").Cells(1, 1)
Set LookupRange = Sheets("Feuil2").Range("A1:B20")
i = 0
With LookupRange
Set c = .Find(2, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
ZoneDeSortie.Offset(1, 0).Value = c.Value
Do
c.Interior.ColorIndex = 50
ZoneDeSortie.Offset(i, 0).Value = c.Address
Set c = .FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> firstAddress
End If


Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End With

End sub


bye
stephane
 
S

Stéphane

Guest
d'autres exemples mais allez-y doucement :))))


Sélectionner une plage de cellule contenant une valeur particulière dans la colonne B
Exemple : ne sélectionner que la plage contenant 2000 dans B:B si la colonne est triée (le 18/05/2000 par L.L sélection conditionnelle de plage)
Exemple 1
with range(IIf([B1] = 2000, [B1], [B:B].find(2000, [B1])), "B65536")
range(.Item(1), .ColumnDifferences(.Item(1))(0)).Select
end with

Exemple 2
application.screenupdating = false
with range("B1", range("B:B").find("*", [B1], , xlPrevious))
.autofilter 1, 2000
Intersect(.cells, .offset(1)).Specialcells(xlCellTypeVisible).Select
.autofilter
end with

Exemple 3
function Zone(Plage As range, Critère) As range
On Error Resume Next
with Plage.find("*", Plage(1), , , , xlPrevious)
If Plage(1) = Critère Then Set Zone = range(Plage(1), .cells) Else _
Set Zone = range(Plage.find(Critère, Plage(1), , xlWhole), .cells)
If .cells <> Critère Then Set Zone = range(Zone.Item(1), _
Zone.ColumnDifferences(Zone.Item(1))(0))
end with
end function
'msgbox Zone([A:A],2000).address:Zone([A:A],2000).Select
'retourne un objet plage/range qui correspond à la plage étendue contenant le critère



j'avais déposé ceci sur <http://xlbysteph.free.fr/aideinformatique/actioncellule.htm>

bye
stephane
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata