Selection.Find et variables indicées
Résolumikel831 Messages postés 227 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
Dans le bout de code test suivant :
Dim Spec as Range
Dim TypeC(7) as String
For j = 1 To 6
MsgBox TypeC(j)
Stop
Spec = Selection.Find(TypeC(j))
MsgBox Spec
Stop
Next j
la ligne Selection.Find bugue ...
Je me demande si elle accepte une variable indicée comme TypeC(j) ???
Si oui, je ne vois pas mon erreur ???
Windows / Chrome 123.0.0.0
3 réponses
bonjour,
N'hésite pas, quand tu as une erreur, à partager le texte du message d'erreur. Ce texte est précieux, pour toi comme pour nous.
Connais-tu l'instruction "set"? Tu l'as pourtant déjà utilisée plusieurs fois. N'hésite pas à analyser le code que tu utilises, afin d'en comprendre chaque subtilité.
Quand tu écris "Spec = Selection.Find(TypeC(j))", c'est équivalent à écrire "Spec.value = Selection.Find(TypeC(j))".
Si tu veux que la variable Spec pointe vers un autre objet, tu dois écrire "Set Spec = Selection.Find(TypeC(j))".
Tu te demandes si le souci n'est pas causé par l'utilisation d'une variable indicée.
Dans ce cas, tu aurais pu tester ceci: Spec = Selection.Find(""). Cela t'aurait permis de vérifier ton hypothèse.
yg_be, merci pour tes précisions concernant les différences d'écritures:
"Spec = ...." et "Set Spec=...". J'ai bien compris et j'ai donc modifié mon code sachant que Selection.Find renvoie un Range : ça fonctionne nickel !
Merci à tous les autres pour vos réponses.
Cordialement, Mikel