VBA test de la fonction find

Fermé
Apprenti - 3 sept. 2010 à 16:52
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 3 sept. 2010 à 17:45
Bonjour,

dans ma macro j'ai la ligne suivante :

Set Celcherche = Cells.Find(What:=ContenuCelluleSource, lookat:=xlWhole)

cella fonctionne très bien tant que la cellule que je lui demande de trouver existe. Mon probleme c'est que quand il ne la trouve pas, je ne sais pas comment tester le contenu de ma variable Celcherche.

Quand il ne trouve pas et que je met le curseur dessu, je lit "Celcherche = Nothing

mais si je veux faire un if avec

If Celcherche = Nothing Then
(commande)
End if




jai un message d'erreur...
Je ne sais pas comment ecrire ma condition...

Si quelqu'un a une idée?!

merci!


2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
3 sept. 2010 à 17:45
Bonjour,

La bonne syntaxe est :
If Celcherche is Nothing Then
(commande)
End if
Cordialement
2
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 3/09/2010 à 17:21
bonjour,

pas sûr d'avoir pigé ta question

If Application.CountIf(Cells, ContenuCelluleSource) > 0 Then 
   Set celcherche = Cells.Find(What:=ContenuCelluleSource, lookat:=xlWhole) 
'test = celcherche.Address 
Else 
MsgBox "aucune cellule est affectée avec la valeur  cherchée" 
End If


"set celcherche" indique que tu instancies une cellule; si aucune cellule de la feuille n'a la valeur de contenusource, celcherche n'existe pas et tu ne peux pas lui attribuer une valeur.
countif correspond à NB.SI

mais comme tu n'indiques pas le pourquoi de setcherche, il est difficile de te proposer un truc plus adapté à tes besoins
:-x
0