Problemes de formules dans une macro [Résolu]

Signaler
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
-
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012
-
Bonjour ,

Je viens vous demandez votre aide car j'ai des problèmes de formules dans une macro pourtant quand je les tapes dans des cellules tout et ok , j'ai tapez d'autres formules dans ma macro tout et ok , je ne comprend pas pourquoi , j'ai pourtant bien traduit c'est formules pour ma macro les voici en espérant avoir une solution , merci . :

Code: Tout sélectionner
Range("AH2").Formula = "=IF(IS(IF(I2=" / ",0)>0,I2=I1)=TRUE,1,0)"
Range("AH2").AutoFill Destination:=Range("AH2:AH5535")

Range("AI2").Formula = "=IF(IS(IF(J2=" / ",0)>0,J2=J1)=TRUE,1,0)"
Range("AI2").AutoFill Destination:=Range("AI2:AI5535")

Range("AJ2").Formula = "=IF(IS(IF(K2=" / ",0)>0,K2=K1)=TRUE,1,0)"
Range("AJ2").AutoFill Destination:=Range("AJ2:AJ5535")

Range("AK2").Formula = "=IF(SUM(AH2:AJ2)=3,1,0)"
Range("AK2").AutoFill Destination:=Range("AK2:AK5535")

Range("AO2").Formula = "=IF(I2="a",1,if(I2="b",2,if(I2="c",3,if(I2="d",4,if(I2="e",5,if(I2="f",6,if(I2="g",7,0)))))))"
Range("AO2").AutoFill Destination:=Range("AO2:AO5535")

Range("AP2").Formula = "=IF(I2="h",8,if(I2="i",0,if(I2="j",9,if(I2="k",10,if(I2="l",11,if(I2="m",12,if(I2="n",13,0)))))))"
Range("AP2").AutoFill Destination:=Range("AP2:AP5535")


Range("AR2").Formula = "=IF(AK2>0,(AA2-AC1)*365+(AB2-AD1)*30,(AA2-AL2)*365+(AB2-AQ2)*30)"
Range("AR2").AutoFill Destination:=Range("AR2:AR5535")




Cordialement .

8 réponses

Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
Oups !!   Précision : il faut doubler les guillemets dans la formule.

Exemple d'une formule simple dans la cellule E3 :   =SI(D3="A";1;)

Dans la fenêtre d'exécution on obtient :   =IF(D3="A",1,)

Dans le code VBA cela se traduit par
[E3] = "=IF(D3=""A"",1,)"


___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour,
Une formule set une chaîne de caractères :
On en prends une des tiennes :*
il te suffit de tenter voir ce qu'affiche :
MsgBox "=IF(IS(IF(I2=" / ",0)>0,I2=I1)=TRUE,1,0)"

Pour voir que tu es en erreur.
Que souhaiterais-tu donc que soit (la chaîne de caractères) cette formule ?
La réponse est dans la question
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
'jour ! Le plus simple pour t'en sortir seul et rapidement, tape une formule dans une cellule et
dès qu'elle est bonne, sélectionne d'abord la cellule puis dans la fenêtre Exécution de l'environnement VBA
tape ? activecell.formula et valide : tu n'auras plus qu'à recopier le résultat dans ton code ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
un indice : la gestion des guillemets "internes", pour " / "


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

salut merci pour vos reponses rapide , donc Ucfoutu j'ai bien fait ce que tu ma dit avec le msgbox mais elle m'affiche une erreur je vais essayer ta deuxieme solution , MarcPL je vais testé ta solution je te dit quoi , merci .

Cordialement .
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

oui cela se fait automatiquement quand j'enregistre la macro .
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

une dernière question comment enlever les #VALEUR! , le problem c'est qu'il ny a plus de valeur dans certaine cellule et la formule bloque .
Messages postés
53
Date d'inscription
jeudi 29 mars 2012
Statut
Membre
Dernière intervention
9 juin 2012

J'ai trouver la solution donc je post il suffit d’insérer un code vba :

exemple avec ma formule 365*(AC4999-AA4999)+30*(AD4999-AB4999)+AF4999-AE4999

voici le code vba
=SI(ESTERREUR(TaFormule);"";Ta formule)


et voici le code avec la formule :
=SI(ESTERREUR(365*(AC4999-AA4999)+30*(AD4999-AB4999)+AF4999-AE4999);"";365*(AC4999-AA4999)+30*(AD4999-AB4999)+AF4999-AE4999)


Cordialement .