Macro excel : variable inclue dans une autre

Fermé
mimi - 27 juil. 2006 à 20:33
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 31 juil. 2006 à 13:00
Bonjour
comment dire à la macro de tester si la valeur i est contenue dans ma variable (ou si la variable contient i) ?

j'ai essayé avec "find" mais je ne m'en sors pas

j'ai la macro suivante :
compteurA = 0
variable = "256874523"
for i = 1 to 9
if i est inclu dans variable then compteurA = compteurA + 1

il faut que i ne soit ni > ni < ni = mais contenu dans la variable

merci par avance pour vos précieux conseil
mimi
A voir également:

3 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
28 juil. 2006 à 01:04
Bonsoir,

C'est plus facile à faire en feuille de calcul qu'en VBA !

Avec une formule matricielle :
=SOMME(SI(NBCAR(SUBSTITUE(mavariable;LIGNE(INDIRECT("1:"&NBCAR(mavariable)));""))<>NBCAR(mavariable);1;0))
cette formule te donne le nombre de chiffres différents composant ta variable, ce que, si j'ai bien compris, ton code faisait.

si ça peut te donner des idées pour l'adapter en VBA ....

cordialement
0
moustikou Messages postés 1 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 28 juillet 2006
28 juil. 2006 à 18:07
Merci JvDo pour ta réponse mais je suis un peu perdu dans la formule.
J'ai fais des macros pour résoudre les grilles de sudoku.
recherche en colonne, ligne et région : mes macros marchent
recherche du seul chiffre possible dans une case : ça marche

maintenant pour une ligne par exemple, je cherche à indentifier pour chaque case vide, les chiffres possibles pour isoler ensuite (s'il y a lieu) le chiffre unique.
Lorsque je trouve une case vide, je concatène dans une variable tous les chiffres figurant dans la ligne, la région de cette case et la colonne de cette case.

Je cherche donc à stocker dans une autre variable l'inverse du contenu de ma 1ère variable
exemple Variable1 me donne "15241345629"
je voudrait dans Variable 2 les chiffres "79" qui peuvent compléter la case.
Puis je balaie toutes les variables contenant les possibilités (autant que de cases vides dans la ligne) pour isoler le chiffre unique s'il existe.
Dans mon raisonnement, je fais varier un compteur de 1 à 9 et si ce compteur est absent de Variable 1, je le stock dans Variable 2.
Mais je ne sais pas écrire le test en VBA

Si tu as un truc, merci d'avance pour ton aide

Mimi
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
31 juil. 2006 à 13:00
Bonjour,

un petit bout de code :
mavar2 = 1251362822
mavar1 = ""
For i = 1 To 9
    If Len(mavar2) - Len(WorksheetFunction.Substitute(mavar2, i, "")) = 0 Then mavar1 = mavar1 & i
Next
Cordialement
0