Microsoft 365 Sélectionner une case afin de rentrer une formule

Léraud Florian

XLDnaute Junior
Bonjour à tous,

J'ai créé un fichier Excel qui me permet d'établir une sorte de planning. Une des fonctionnalité est la suivante :
Si on sélectionne les cellules entre C2 et K2 alors le message suivant apparait "Est-ce une semaine de vacance ?"

Si on choisi "non" alors les cellules de C8 à K8 prennent la formule : MAX(0;C5-$C$25*8-C7*8)
Si on choisi "oui" alors les cellules de C8 à K8 prennent la valeur : 0

Cependant, j'ai 2 petits soucis :

-le 1er est lorsque je veux coder la ligne pour rentrer la formule dans une cellule, j'utilise ceci : Selection.Formula = "=MAX(0;C5-$C$25*8-C7*8)"

Mais Excel me sort un message d'erreur 1004. J'ai déjà regardé dans le forum est des personnes ont eu le même soucis mais même en appliquant les conseils cela ne marche pas :/
Mais cela fonctionne avec cette formulation : Selection.Formula = "=C5-$C$25*8-C7*8"

-le 2ème est lorsque je sélectionne une autre partie du tableur, Excel me fait quand même tourner la formule en dehors des cellules concernées (de C2 à K2). Je pense que ma condition est fausse du coup mais je vois pas où ^^

Je vous met en PJ le tableur, merci d'avance =)
 

Pièces jointes

  • Planning.xlsm
    25.3 KB · Affichages: 2
Solution
Bonjour Florian,
Utilisez :
VB:
Selection.FormulaLocal = "=MAX(0;C5-$C$25*8-C7*8)"
je ne comprends pas trop pourquoi, car Local signifie qu'on utilise la langue locale pour les formules mais MAX est aussi la syntaxe anglosaxonne.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui, par exemple, sans Local si je met "=EQUIV(A1;B1:C10;0)" il mettra "=MATCH(A1,B1:C10,0)"
Avec Local, il traduira EQUIV dans la langue du système, donc pour vous il ne changera rien.

SAUF que "=MAX(A1:A100)" est la même formule en anglais en en français, d'où mon incompréhension.

Incompréhension ... que je viens de comprendre !
La différence entre les deux formules ce sont les ";", en anglais ce sont des virgules, en français des points virgules. D'où l'erreur ! :)
Sans Local : "=MAX(A1,A2,A3)" , avec Local : "=MAX(A1;A2;A3)"
 

Discussions similaires

Réponses
9
Affichages
401
Réponses
1
Affichages
1 K