Selection.Find et variables indicées
Résolumikel831 Messages postés 221 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))".
Bonjour,
Vous n'avez mis aucune valeur dans votre tableau TypeC
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