méthode find en VBA

roro145

XLDnaute Nouveau
Bonjour à tous, voilà j'ai un problème avec l'utilisation de la méthode find appliquée à un objet range, voici le code :

With ActiveWorkbook.Worksheet('MEMO2').Range('A1:Z1')
c = .Find(Donnée)
...
End With

avec 'Donnée' qui est une chaine de caractère.
Donnée se trouve bien dans la plage A1:Z1, mais pourtant c'est 'nothing' qui est affecté à c (c étant déclaré comme 'Range').

La fonction find ne devrait-elle pas renvoyé l'adresse de la cellule à laquelle la chaine de caractère à été trouvée ???

merci par avance pour vos éventuelles réponse.
++

Message édité par: roro145, à: 19/06/2006 10:59
 

Hervé

XLDnaute Barbatruc
bonjour :)

sinon, essayes comme ceci :

With ActiveWorkbook.Worksheets('MEMO2').Range('A1:Z1')
Set c = .Find(donnée)

End With


set permet d'affecter un objet à une variable

tu peux ensuite utiliser dans le reste de ton code directement c

c.select
c.interior.colorindex=3

si tu veux tester si c est bien initialisé, utilise ce type de syntaxe :

If Not c Is Nothing=si c n'est pas vide

salut
 
A

AV

Guest
Ave,

Attention à la méthode Find qui à la fâcheuse habitude de mémoriser les paramètres de la précédente utilisation !

Préférer la syntaxe suivante :

Sub zzz()
donnée = 'aaa'
x = [A1:Z1].Find(What:=donnée, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address
End Sub

AV [aaa]
 

Hervé

XLDnaute Barbatruc
re roro, shock
salut pierrejean, AV

pas de souci pierrejean

Bien d'accord avec toi alain

attention roro, si tu utilises la méthode d'alain, le x deviens un string (contenant l'addresse de la cellule trouvé)

si tu veux tester son contenu il te faut utiliser :

donnée = 'aaa'
On Error Resume Next
x = [A1:Z1].Find(What:=donnée, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address
If Not x = '' Then ...


et si ensuite tu veux utiliser une variable objet (dim c as range) :

set c=range(x)

salut :)
 

roro145

XLDnaute Nouveau
Merci à tous, vous êtes géniaux, et ultra réactifs , jamais vu une réponse donnée en si peu de temps ...
Donc j'ai essayé la méthode d'Hervé, qui marche parfaitement...
encore un grand merci, heureusement que vous êtes là,
++
 

roro145

XLDnaute Nouveau
Merci à tous, vous êtes géniaux, et ultra réactifs , jamais vu une réponse donnée en si peu de temps ...
Donc j'ai essayé la méthode d'Hervé, qui marche parfaitement...
encore un grand merci, heureusement que vous êtes là,
++
 

roro145

XLDnaute Nouveau
Merci à tous, vous êtes géniaux, et ultra réactifs , jamais vu une réponse donnée en si peu de temps ...
Donc j'ai essayé la méthode d'Hervé, qui marche parfaitement...
encore un grand merci, heureusement que vous êtes là,
++
 

Discussions similaires

Réponses
3
Affichages
1 K
Réponses
6
Affichages
601

Statistiques des forums

Discussions
312 103
Messages
2 085 319
Membres
102 862
dernier inscrit
Emma35400