Macro pour executer une formule

Bonjour,

J'ai une formule répétitive dans mon fichier (SI(Z3<>1;"";SI((ET(OU(A3=$AJ$3;A3="");(L3-$AH$3)>=0;OU(P3="produit";P3="à compléter";P3="à produire")));"EDI";SI(ET(K3="MAL";($AH$3-L3)<=3;($AH$3-L3)>0;P3<>"produit";P3<>"inactif");"EDI";SI(Z3<>1;"";SI(ET(K3<>"MAL";N3<>"";($AH$3-L3)<=3;($AH$3-L3)>0;OU(P3="à produire";P3="à compléter"));"EDI REPPRISE";SI(ET(OU(A3=$AJ$3;A3="");3<($AH$3-L3);L3>=$AI$3;N3<>"";OU(P3="à produire";P3="à compléter"));"EDI REPRISE";SI(ET(N3="";(L3-$AI$3)>0;($AH$3-M3)<=3;OU(P3="à compléter";P3="à produire";P3="produit"));"V";"")))))))

j'ai essayé d'enregistrer une MACRO simple pour exécuter cette formule à chaque demande, mais j'ai un bug (apparemment la source de ce bug est la longueur de ma formule puisque lorsque j'ai utilisé une autre formule plus simple tout marche bien)

Est ce que quelqu'un peut me donner le bon code pour ce type de Macro sachant que le résultat doit être dans la colonne AA de mon fichier Excel ?

Merci d'avance


Je pense que le mieux est de vous joindre mon fichier avec mon besoin : en fait je voulais exécuter les formules suivantes :

Dans la colonne AA : SI(Z3<>1;"";SI((ET(OU(A3=$AJ$3;A3="");(L3-$AH$3)>=0;OU(P3="produit";P3="à compléter";P3="à produire")));"EDI";SI(ET(K3="MAL";($AH$3-L3)<=3;($AH$3-L3)>0;P3<>"produit";P3<>"inactif");"EDI";SI(Z3<>1;"";SI(ET(K3<>"MAL";N3<>"";($AH$3-L3)<=3;($AH$3-L3)>0;OU(P3="à produire";P3="à compléter"));"EDI REPPRISE";SI(ET(OU(A3=$AJ$3;A3="");3<($AH$3-L3);L3>=$AI$3;N3<>"";OU(P3="à produire";P3="à compléter"));"EDI REPRISE";SI(ET(N3="";(L3-$AI$3)>0;($AH$3-M3)<=3;OU(P3="à compléter";P3="à produire";P3="produit"));"V";"")))))))

Dans la colonne AE : SI(AA3="";"";SI(R3=$AK$3;"Vérifier la date fin de Subrogation";SI(ET(R3<>"";Y3=0);"A vérifier Subrogation de ce salarié";"")))

PS: je veux que ces formules s’exécutent suivant la longueur de mon fichier (nombre de lignes renseignés peut varier entre 5 et des milliers)

Pouvez vous me donner le bon code pour ma macro ?

Merci d'avance

A+

Bonjour. Bienvenue sur le Forum

1) J'ai modifié la formule

2) J'ai nommé chaque partie de la formule Formule1, Formule2, Formule3, Formule4

pour obtenir une formule finale reconstituée avec ces noms

A tester bien sur

En l'absence de noms prénoms , je suis parti avec comme base la colonne K

Cordialement

129verification.zip (12.51 Ko)

Bonjour Amadéus,

Merci beaucoup !!c'est génial

par contre, est ce que je peux l'intégrer à une autre MACRO dans un autre classeur ?

Lorsque je copie le code et je le colle dans l'autre classeur, ce ne marche pas

Peux-tu m'aider stp ?

merci

Bonjour

J'ai bien écris:

J'ai nommé chaque partie de la formule Formule1, Formule2, Formule3, Formule4

Sur ce nouveau classeur, il faut aussi copier ces noms et les formules qui sont nommées.

J'ai donc modifié le Code sur ce nouveau fichier pour intégrer la création des noms.

Sub Action()
Application.ScreenUpdating = False
    ActiveWorkbook.Names.Add Name:="Formule1", RefersToR1C1:= _
        "=AND(Feuil1!RC[-16]=""MAL"",(Feuil1!R3C34-Feuil1!RC[-15])<=3,(Feuil1!R3C34-Feuil1!RC[-15])>0,Feuil1!RC[-11]<>""produit"",Feuil1!RC[-11]<>""inactif"")"
    ActiveWorkbook.Names.Add Name:="Formule2", RefersToR1C1:= _
        "=AND(Feuil1!RC[-16]<>""MAL"",Feuil1!RC[-13]<>"""",(Feuil1!R3C34-Feuil1!RC[-15])<=3,(Feuil1!R3C34-Feuil1!RC[-15])>0,OR(Feuil1!RC[-11]=""à produire"",Feuil1!RC[-11]=""à compléter""))"
    ActiveWorkbook.Names.Add Name:="Formule3", RefersToR1C1:= _
        "=AND(OR(Feuil1!RC[230]=Feuil1!R3C36,Feuil1!RC[230]=""""),3<(Feuil1!R3C34-Feuil1!RC[-15]),Feuil1!RC[-15]>=Feuil1!R3C35,Feuil1!RC[-13]<>"""",OR(Feuil1!RC[-11]=""à produire"",Feuil1!RC[-11]=""à compléter""))"
    ActiveWorkbook.Names.Add Name:="Formule4", RefersToR1C1:= _
        "=AND(Feuil1!RC[-13]="""",(Feuil1!RC[-15]-Feuil1!R3C35)>0,(Feuil1!R3C34-Feuil1!RC[-14])<=3,OR(Feuil1!RC[-11]=""à compléter"",Feuil1!RC[-11]=""à produire"",Feuil1!RC[-11]=""produit""))"

    Range("K3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Offset(0, 16).Select
    Selection.FormulaR1C1 = _
        "=IF(RC[-1]<>1,"""",IF(Formule1,""EDI"",IF(Formule2,""EDI REPPRISE""," & Chr(10) & "IF(Formule3,""EDI REPRISE""," & Chr(10) & "IF(Formule4,""V"","""")))))"
            Selection.Copy
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Selection.Offset(0, 4).Select
    Selection.FormulaR1C1 = _
        "=IF(RC[-4]="""","""",IF(RC[-13]=R3C37,""Vérifier la date fin de Subrogation"",IF(AND(RC[-13]<>"""",RC[-6]=0),""A vérifier Subrogation de ce salarié"","""")))"
            Selection.Copy
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveCell.Select
End Sub

Cordialement

63verification.zip (13.10 Ko)

Bonjour,

Merci beaucoup pour ton retour, mais je n'y arrive pas à faire fonctionner ta Macro dans un autre classeur qui contient déjà une autre MACRO

Je t'envoi un exemple de mon classeur, peux-tu stp mettre la Macro "Action" dans ce classeur ?

Merci d'avance

Bonjour

Dans le premier classeur, la Feuille est Feuil1, dans ce dernier, elle s'appelle Exemple

La commande Rechercher-Remplacer appliquée au code devrait résoudre le problème

Cordialement

Bonjour Amadéus,

Je reviens vers toi concernant la Macro :En fait je viens de détecter un écart entre le résultat donné par la Macro et celui par mes formules (Colonne AA)

Tu trouveras ci-joint le fichier pour monter l'écart :

dans la colonne AA, le résultat donné par la Macro et dans la colonne AB le résultat de la formule suivante (Colonne AA3) :

SI(Z3<>1;"";SI((ET(OU(A3=$AJ$3;A3="");(L3-$AH$3)>=0;OU(P3="produit";P3="à compléter";P3="à produire")));"EDI";SI(ET(K3="MAL";($AH$3-L3)<=3;($AH$3-L3)>0;P3<>"produit";P3<>"inactif");"EDI";SI(ET(OU(A3=$AJ$3;A3="");($AH$3-L3)>3;(L3-$AI$3)>=0;N3<>"";OU(P3="à produire";P3="à compléter"));"EDI REPRISE";SI(ET(N3="";(L3-$AI$3)>0;($AH$3-M3)<=3;M3<$AK$3;OU(P3="à compléter";P3="à produire";P3="produit"));"V";"")))))

Peux-tu jeter un coup d'oeil pour voir ce qui ne marche pas ?

un grand merci pour tes efforts

A+

Rechercher des sujets similaires à "macro executer formule"