Formule dans VBA trop longue

  • Initiateur de la discussion Initiateur de la discussion iStarOSX
  • Date de début Date de début

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 !

iStarOSX

XLDnaute Junior
Bonjour a tous et merci d'avance a ceux qui pourront m'aider.

Voila, je voudrai avoir une macro qui inséré une formule dans les cellules préalablement sélectionné.

D'habitude, j'utilise l'enregistreur de Macro pour enregistrer ma formule, mais la Excel me dit qu'il est impossible d'enregistrer".

Voici ma formule, qui fonctionne lorsque je la rentre a la main :
Code:
(DY180=0;SI($ED$2>1;SI(OU(ET(OU(ET(DE180=5;DM180=7;DR180=$EF$2);ET(DE180=5;DM180=6;(DJ180-DR180)=$EF$2));DT180=0);ET(OU(ET(DE180=6;DM180=6;(DK180+DR180)=$EF$2);ET(DE180=5;DM180=5;(DJ180+DQ180)=$EF$2));DT180>0));$EE$2;$EA$2);$EA$2);$EC$2)

Ma formule semble trop longue pour l'enregistreur, Donc je la rentre a la main. Cela me donne :
Code:
=IF(RC[-2]=0;IF(R2C134>1;IF(OR(AND(OR(AND(RC[-22]=5;RC[-14]=7;RC[-9]=R2C136);AND(RC[-22]=5;RC[-14]=6;(RC[-17]-RC[-9])=R2C136));RC[-7]=0);AND(OR(AND(RC[-22]=6;RC[-14]=6;(RC[-16]+RC[-9])=R2C136);AND(RC[-22]=5;RC[-14]=5;(RC[-17]+RC[-10])=R2C136));RC[-7]>0));R2C135;R2C131);R2C131);R2C133)


Mais lors de l’exécution cela me fait "bug" de ma macro.

Je cherche comment arriver a résoudre mon problème.

Merci.
 
Re : Formule dans VBA trop longue

Bonjour iStarOSX

A tester:
Code:
Sub form()
f = "=SI(DY180=0;SI($ED$2>1;SI(OU(ET(OU(ET(DE180=5;DM180=7;DR180=$EF$2);ET(DE180=5;DM180=6;(DJ180-DR180)=$EF$2));DT180=0);ET(OU(ET(DE180=6;DM180=6;(DK180+DR180)=$EF$2);ET(DE180=5;DM180=5;(DJ180+DQ180)=$EF$2));DT180>0));$EE$2;$EA$2);$EA$2);$EC$2)"
Range("I18").FormulaLocal = f
End Sub
 
Re : Formule dans VBA trop longue

Bonjour Pierre Jean et merci pour l'aide.

Ton code ne semble pas fonctionner.

En plus de ce que j'en comprend, celui ci fonctionnera uniquement sur la ligne 180.

Hors je veux que, si je sélectionne sur la ligne 500 la formule prenne les cellule de la ligne 500, etc..

Merci tout de même et a bientôt.
 
Re : Formule dans VBA trop longue

Bonjour iStarOSX, pierrejean


Encore faudrait-il que nous sussions cette formule est saisie.

Saisie en A1 on a :
Code:
"=IF(R[179]C[128]=0,IF(R2C134>1,IF(OR(AND(OR(AND(R[179]C[108]=5,R[179]C[116]=7,R[179]C[121]=R2C136),AND(R[179]C[108]=5,R[179]C[116]=6,(R[179]C[113]-R[179]C[121])=R2C136)),R[179]C[123]=0),AND(OR(AND(R[179]C[108]=6,R[179]C[116]=6,(R[179]C[114]+R[179]C[121])=R2C136),AND(R[179]C[108]=5,R[179]C[116]=5,(R[179]C[113]+R[179]C[120])=R2C136)),R[179]C[123]>0)),R2C135,R2C131),R2C131),R2C133)"


ROGER2327
#5718


Dimanche 8 Clinamen 139 (La Machine à Peindre - fête Suprême Seconde)
10 Germinal An CCXX, 6,5582h - couvoir
2012-W13-5T15:44:23Z
 
Re : Formule dans VBA trop longue

Re...


Bonsoir Roger2327

En fait cette formule s'applique sur une cellule de la colonne "EA" que je sélectionne.

Bonne soirée
Dans ce cas, essayez :
Code:
"=IF(R[179]C[-2]=0,IF(R2C134>1,IF(OR(AND(OR(AND(R[179]C[-22]=5,R[179]C[-14]=7,R[179]C[-9]=R2C136),AND(R[179]C[-22]=5,R[179]C[-14]=6,(R[179]C[-17]-R[179]C[-9])=R2C136)),R[179]C[-7]=0),AND(OR(AND(R[179]C[-22]=6,R[179]C[-14]=6,(R[179]C[-16]+R[179]C[-9])=R2C136),AND(R[179]C[-22]=5,R[179]C[-14]=5,(R[179]C[-17]+R[179]C[-10])=R2C136)),R[179]C[-7]>0)),R2C135,R2C131),R2C131),R2C133)"


ROGER2327
#5723


Dimanche 8 Clinamen 139 (La Machine à Peindre - fête Suprême Seconde)
10 Germinal An CCXX, 9,5070h - couvoir
2012-W13-5T22:49:00Z
 
- 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

  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
3
Affichages
512
Retour