Répétabilité et boucle

Bonjour le forum,

J'ai un problème de répétabilité et de boucle.

J'ai crée une macro permettant de copier un ligne et de la coller en dessous avec une formule Somme.Si

Je voudrais que cette formule ce colle toute les 3 colonnes (sur en tous 180 colonnes).

Voici une partie de la macro que j'utilise :

With Sheets("Découpage prix")

DL = .Cells(Application.Rows.Count, 10).End(xlUp).Row

.Rows(DL).Copy

.Rows(DL + 1).Insert Shift:=xlUp

.Cells(DL + 1, 3).FormulaR1C1 = _

"=RIGHT(CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3]),LEN(CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3]))-FIND(""]"",CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3])))"

.Cells(DL + 1, 4).FormulaR1C1 = _

"=SUMIF(" & NewSheet & "!R15C5:R38C5,'Découpage prix'!R9C4:R9C6," & NewSheet & "!R15C78:R38C78)*(1+R2C2)*(1+R3C2)"

End With

(en violet la partie ou je souhaite mettre en place une boucle).

J’espère avoir été clair.

Pour des raisons de confidentialité je ne peut pas poster mon fichier sur le forum.

Cordialement

Axxel

sans titre

Bonsoir,

Regarde du coté de "AutoFill" :

Sub EttendreSommeSi()

    With Sheets("Découpage prix")

        DL = .Cells(.Rows.Count, 10).End(xlUp).Row
        .Rows(DL + 1).Insert Shift:=xlUp
        .Cells(DL + 1, 3).FormulaR1C1 = "=RIGHT(CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3]),LEN(CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3]))-FIND(""]"",CELL(""nomfichier""," & NewSheet & "!R[-8]C[-3])))"
        .Cells(DL + 1, 4).FormulaR1C1 = "=SUMIF(" & NewSheet & "!R15C5:R38C5,'Découpage prix'!R9C4:R9C6," & NewSheet & "!R15C78:R38C78)*(1+R2C2)*(1+R3C2)"

        'ici, imaginons que les deux cellules à droite de ".Cells(DL + 1, 4)" soient vide, "un AutoFill" avec comme plage de destination ".Range(.Cells(DL + 1, 4), .Cells(DL + 1, 20))"
        'va entrer la formule "SUMIF" toutes les trois colonnes...
        .Range(.Cells(DL + 1, 4), .Cells(DL + 1, 7)).AutoFill .Range(.Cells(DL + 1, 4), .Cells(DL + 1, 20)) '<-- adapter la dernière colonne (ici 20) !

        .Rows(DL).Copy

    End Sub

End With

Hervé.

Merci beaucoup Herve,

Ont s'approche de mon besoin mais il y un petit truc que je ne comprend pas.

Lorsque je lance ma macro une première fois tous va bien excel remplis et va chercher les bonnes cases, mon problème survient lorsque je lance plus d'une fois la macro, les "cellules cibles" descende d'une ligne et je voudrais les figer.

Mon problème est que lorsque je fige mes cellules (en écrivant comme ceci : R9C4:R9C6) la référence de ma somme si sera tjr "1" et non, 2, 3 ,4 .....

alors qu'en écrivant (R[-3]C[0]:R[-3]C[2]) j'ai les bonnes cases mais qui "descende" d'une ligne a chaque lancement de macro.

Bref je suis perdus et je commence à m'énerver tous seul donc j'avance plus ^^.

En espérant m’être fait comprendre

Merci d'avance

Cordialement

Axxel

autofill

Bonjour,

L'utilisation des crochets dans les formules R1C1 rend les références relatives et donc sans crochets, en références absolues.

"=R1C1" fait référence absolue à A1 ("=$A$1")

"=R[1]C1" ici, la colonne est en référence absolue ("C1" = colonne A) mais la ligne est en référence relative soit une ligne au dessous de la cellule ayant la formule. Si la formule est en B5, elle sera "=$A6". Si on veut faire référence à la cellule située sur la même ligne, donc "=$A5", il faut écrire "=R[0]C1" ou encore "=R[]C1".

Pour les colonnes, "=R1C[1]" la ligne est en référence absolue alors que la colonne est en référence relative donc, si la formule est en B5, elle sera "=C$1" ligne 1 mais une colonne à droite. Les valeurs sont positive pour un déplacement vers le bas (pour les lignes) et vers la droite (pour les colonnes), négative pour un déplacement vers le haut (pour les lignes) et vers la gauche (pour les colonnes).

"=R[1]C[1]" pour une référence relative en ligne et colonne.

"=R[0]C[0]" ou "=R[]C[]" est à éviter si pas voulue car référence circulaire.

Hervé.

Rechercher des sujets similaires à "repetabilite boucle"