Formule à condition SI ne voit pas les variables
KelvinZer0
Messages postés
13
Statut
Membre
-
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis novice sur Excel (2013)
J'essaie de programmer une formule simple utilisant des variables constantes (VBA). Seulement, la formule ne semble pas reconnaître le contenu de mes variables. Voici ce que j'essaie de faire :
D'abord, je déclare mes variables contantes comme suit dans un module:
Puis dans une cellule, j'inscris le code suivant dans sa barre de formule :
Mon but :
1- Tant que la cellule D9 (et les suivantes copiées) contiennent "-", la formule ne renvoit rien et la cellule contenant cette formule reste vide.
2- Si la cellule D9* contient un chiffre (ici soit 0,1,2,3,4 ou 5), renvoit "WINS!".
3- Si la cellule ne contient pas l'un de ces chiffres, renvoit le chiffre "1".
Et bien, il semble qu'il y ait problème, car lorsque j'inscris des valeurs dans la ligne D9 (et les suivantes), j'ai toujours un retour de "1", SAUF lorsque j'inscris "0". À ce moment, j'ai un retour de "WINS!"... mais dans les autres cas, toujours "1". J'ai tenté d'inscrire les chiffres directement dans la formule (sans utiliser de variables), et celà fonctionne ; ça retourne "WINS!". Donc je suppose que ce sont les variables qui causent problème. J'ai aussi tenté d'utiliser les variables sans "$", mais celà ne fonctionne pas non plus.
Comme je le disais, j'ai choisi d'utiliser des variables car j'aimerais pouvoir changer leurs valeurs en cours de route (que ce ne soit pas forcément 0,1,2,3,4,5). J'ai l'impression qu'utiliser des variables constantes posera peut-être problème, mais c'est la seule option que j'ai trouvé pour définir une variable dès sa création. Je ne voulais pas les redéfinir en invoquant une routine à tous les coups...
Donc voilà!...
Quelqu'un peut-il m'aider à résoudre cette énigme?
Comment se fait-il que mes variables ne soient pas reconnues dans ma formule?
Merci à vous
Cordialement
Kelvin
Je suis novice sur Excel (2013)
J'essaie de programmer une formule simple utilisant des variables constantes (VBA). Seulement, la formule ne semble pas reconnaître le contenu de mes variables. Voici ce que j'essaie de faire :
D'abord, je déclare mes variables contantes comme suit dans un module:
Public Const SZ1 As Integer = 0
Public Const SZ2 As Integer = 1 "Je veux utiliser des variables,"
Public Const SZ3 As Integer = 2 "car j'aimerais pouvoir à tout"
Public Const SZ4 As Integer = 3 "moment changer leurs valeurs."
Public Const SZ5 As Integer = 4
Public Const SZ6 As Integer = 5
Puis dans une cellule, j'inscris le code suivant dans sa barre de formule :
=SI(D9="-";"";SI(OU(D9=SZ$1;D9=SZ$2;D9=SZ$3;D9=SZ$4;D9=SZ$5;D9=SZ$6);"WINS!";1))
Mon but :
1- Tant que la cellule D9 (et les suivantes copiées) contiennent "-", la formule ne renvoit rien et la cellule contenant cette formule reste vide.
2- Si la cellule D9* contient un chiffre (ici soit 0,1,2,3,4 ou 5), renvoit "WINS!".
3- Si la cellule ne contient pas l'un de ces chiffres, renvoit le chiffre "1".
Et bien, il semble qu'il y ait problème, car lorsque j'inscris des valeurs dans la ligne D9 (et les suivantes), j'ai toujours un retour de "1", SAUF lorsque j'inscris "0". À ce moment, j'ai un retour de "WINS!"... mais dans les autres cas, toujours "1". J'ai tenté d'inscrire les chiffres directement dans la formule (sans utiliser de variables), et celà fonctionne ; ça retourne "WINS!". Donc je suppose que ce sont les variables qui causent problème. J'ai aussi tenté d'utiliser les variables sans "$", mais celà ne fonctionne pas non plus.
Comme je le disais, j'ai choisi d'utiliser des variables car j'aimerais pouvoir changer leurs valeurs en cours de route (que ce ne soit pas forcément 0,1,2,3,4,5). J'ai l'impression qu'utiliser des variables constantes posera peut-être problème, mais c'est la seule option que j'ai trouvé pour définir une variable dès sa création. Je ne voulais pas les redéfinir en invoquant une routine à tous les coups...
Donc voilà!...
Quelqu'un peut-il m'aider à résoudre cette énigme?
Comment se fait-il que mes variables ne soient pas reconnues dans ma formule?
Merci à vous
Cordialement
Kelvin
A voir également:
- Formule à condition SI ne voit pas les variables
- Formule si et - Guide
- Excel cellule couleur si condition texte - Guide
- Si je bloque quelqu'un sur messenger le voit il - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
1 réponse
Bonjour
curieux, on ne voit pas pourquoi la formule serait liée à VBA?
copeir coller chez moi, elle fonctionne très bien?
Reste quand même à vérifier si entre D9 et Z1:Z6 il n'y a pas un problème de format (Z en texte et D en num problème auquel après teste semble bien être sensible la condition SI, mais pas cette variante de la formule:
=SI(NB.SI(Z1:Z6;D9);"Wins!";1)
crdlmnt
curieux, on ne voit pas pourquoi la formule serait liée à VBA?
copeir coller chez moi, elle fonctionne très bien?
Reste quand même à vérifier si entre D9 et Z1:Z6 il n'y a pas un problème de format (Z en texte et D en num problème auquel après teste semble bien être sensible la condition SI, mais pas cette variante de la formule:
=SI(NB.SI(Z1:Z6;D9);"Wins!";1)
crdlmnt
Merci de cette réponse très rapide.
C'est que les "SZ" de mes conditions sont des variables, et non des cellules.
À voir votre code ici-bas, celà me fait comprendre bien des choses :
Votre code :
Si je comprends bien, la fonction "NB.SI" regarde les valeurs de chaque cellule d'une plage (ici de Z1 à Z6), et les compare à D9. Si c'est le cas, celà réduirait la formule de beaucoup!
Étant novice d'Excel, je viens de comprendre votre curiosité, puisqu'il est inutile de déclarer des variables alors que les cellules peuvent (en quelques sortes) être appelées dans une formule telles des variables.
Voyant cette bourde, j'ai abandonné les variables et refait mon code de cette façon en utilisant une rangée de 6 cellules en collone "BR", tel que voici :
Celà fonctionne bien, et s'avèrera moins compliqué à changer les valeurs de cellule que de variables.
Si j'ai bien compris votre logique avec "NB.SI", est-ce que le code ci-dessous fonctionnerait aussi ?
Cette idée me plaît ; ça réduirait la formule de façon considérable!
Cordialement,
Kelvin
NB.SI(BR$9:BR$14;D9) va déterminer si la valeur de D9 est présente dans la liste de valeur de BR9 à BR14 et renvoie WINS! si oui, 1 si non
En fait NB.SI seule compte le nombre de valeurs de D9 présentes dans BR9:BR14 et renvoie 0 ou la valeur trouvée
ensuite la condition SI applique selon que le résultat soit 0 ou >0
ce qui reviendrait à écrire au pied de la lettre:
=SI(NB.SI(BR9:BR14;D9)>0;"WINS!";1)
mais le >0 est superflu ici
crdlmnt