Copie de formules dans une plage

  • Initiateur de la discussion Initiateur de la discussion cedana
  • 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 !

cedana

XLDnaute Nouveau
Bonsoir
J'ai un souci avec la copie de formules. J'ai un classeur de 13 feuilles dont 12 sont réservées pour les mois et une pour les totaux mensuels. Cette feuille est composée de 120 lignes (1 par code article) et 12 colonnes (1 par mois) et donc 1440 cellules avec formules. C'est fastidieux et source d'erreurs.
J'ai fait un essai avec ce bout de code :

Code:
Sheets("TOTAUX").Select
For i = 1 To 12
    Cells(5, i).Select
        Selection.FormulaArray = _
        "=SUM(IF(Janv!R7C4:R85C4=7010,Janv!R7C5:R85C5-R7C6:R85C6))"
 Next
Ceci n'est valable que pour Janvier et le code 7010, ce qui m'oblige à changer manuellement les mois dans les 11 cellules suivantes de la ligne 5 et je vais devoir recommer en ligne 6 en pensant aussi à modifier le code en 7020.
Si vous avez la solution pour me faciliter la tâche je vous remercie d'avance.
 
Re : Copie de formules dans une plage

Bonsoir,

Tout n'est pas très clair dans tes explications. Rien ne vaut un petit fichier d'exemple, car sinon on tâtonne. Donc à tâtons, je dirais si tu as tes références produit en colonne A (sinon changer le 1 par le bon num de colonne :
Code:
For j = 1 to 120
  For i = 1 to 12
      Cells(j+4, i).FormulaArray = "=SUM(IF(" & Sheets(i).Name & "!R7C4:R85C4=" & Cells(j+5, [COLOR="Red"][B]1[/B][/COLOR]) & "," & Sheets(i).Name & "!R7C5:R85C5-R7C6:R85C6))"
  Next i
next j

Bien évidemment à tester, pque des formules matricielles en VBA, au pif, sans avoir d'exemple sous le nez, y a environ 1% de chances que ça fonctionne tel quel🙂
 
Dernière édition:
Re : Copie de formules dans une plage

Bonsoir Softmama.
Merci beaucoup pour ta réponse rapide qui a résolu mon problème. J'avais essayé avec:
" Sheets(i).Name ", mais sans succès. Je ne savais pas qu'il fallait mettre les &. et oui je suis débutant et je l'assume. Encore une fois un grand merci.
A +
 
- 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

Retour