Programmation VBA
thibeau67
Messages postés
31
Statut
Membre
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
J'aimerai changer cette formule :
=SI(ESTERREUR(LIREDONNEESTABCROISDYNAMIQUE("Temps Coût MO";Feuil4!$A$3;"Article";$A5;"PDC";D$4)*$C5);0;LIREDONNEESTABCROISDYNAMIQUE("Temps Coût MO";Feuil4!$A$3;"Article";$A5;"PDC";D$4))*$C5
en code vba
J'aimerai que cette formule se face sur toute les cellules de la plage ( d5:AA(numéro de la dernière ligne non vide) dans mon cas ligne 1230)
J'aimerai bien que la macro face la cellule D5 en premier puis qu'elle face les cellules jusqu'à AA5 et ensuite qu'elle descende jusqu'à la dernière ligne non vide afin de remplir toute la plage demandée.
Est-ce possible ?
Merci d'avance
Cordialement
Thibeau67
J'aimerai changer cette formule :
=SI(ESTERREUR(LIREDONNEESTABCROISDYNAMIQUE("Temps Coût MO";Feuil4!$A$3;"Article";$A5;"PDC";D$4)*$C5);0;LIREDONNEESTABCROISDYNAMIQUE("Temps Coût MO";Feuil4!$A$3;"Article";$A5;"PDC";D$4))*$C5
en code vba
J'aimerai que cette formule se face sur toute les cellules de la plage ( d5:AA(numéro de la dernière ligne non vide) dans mon cas ligne 1230)
J'aimerai bien que la macro face la cellule D5 en premier puis qu'elle face les cellules jusqu'à AA5 et ensuite qu'elle descende jusqu'à la dernière ligne non vide afin de remplir toute la plage demandée.
Est-ce possible ?
Merci d'avance
Cordialement
Thibeau67
1 réponse
Bonjour
Essayez ceci. Attention, n'ayant pas votre fichier, je n'ai pas pu la tester, faites un essai sur une copie.
Essayez ceci. Attention, n'ayant pas votre fichier, je n'ai pas pu la tester, faites un essai sur une copie.
Sub RecopieFormule()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
DerLig = Cells.Find("*", , , , xlByColumns, xlPrevious).Row
Range(Cells(5, "D"), Cells(DerLig, "AA")).FormulaR1C1 = "=IF(ISERROR(GETPIVOTDATA(""Temps Coût MO"",Feuil4!R3C1,""Article"",R[4]C1,""PDC"",R4C[1])*R[4]C3),0,GETPIVOTDATA(""Temps Coût MO"",Feuil4!R3C1,""Article"",R[4]C1,""PDC"",R4C[1]))*R[4]C3"
Application.Calculation = xlCalculationAutomatic
End SubCdlt