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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
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.
 
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)"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
271
Réponses
9
Affichages
646
Réponses
12
Affichages
966
Réponses
1
Affichages
1 K
Réponses
12
Affichages
1 K
Réponses
13
Affichages
1 K
Retour