Code avec incrementation (for/next)

Bonjour le forum

Par simple curiosité et pour ma culture VBA

Il y a-t-il un moyen de réécrire ce code en utilisant une incrémentation ( for/ next par exemple )

 ''''''Range("b9").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-1]C,'3'!C[2],RC[-1])"
''''''Range("b10").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-2]C,'3'!C[2],RC[-1])"
''''''Range("b10").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-2]C,'3'!C[2],RC[-1])"
''''''Range("b11").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-3]C,'3'!C[2],RC[-1])"
''''''Range("b12").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-4]C,'3'!C[2],RC[-1])"
''''''Range("b13").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-5]C,'3'!C[2],RC[-1])"
''''''Range("b14").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-6]C,'3'!C[2],RC[-1])"
''''''Range("b15").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-7]C,'3'!C[2],RC[-1])"
''''''Range("b16").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-8]C,'3'!C[2],RC[-1])"
''''''Range("b17").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-9]C,'3'!C[2],RC[-1])"
''''''Range("b18").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-10]C,'3'!C[2],RC[-1])"
''''''Range("b19").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-11]C,'3'!C[2],RC[-1])"
''''''Range("b20").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-12]C,'3'!C[2],RC[-1])"
''''''Range("b21").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-13]C,'3'!C[2],RC[-1])"
''''''Range("b22").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-14]C,'3'!C[2],RC[-1])"
''''''Range("b23").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-15]C,'3'!C[2],RC[-1])"
''''''Range("b24").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-16]C,'3'!C[2],RC[-1])"
''''''Range("b25").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-17]C,'3'!C[2],RC[-1])"
''''''Range("b26").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-18]C,'3'!C[2],RC[-1])"
''''''Range("b27").FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[-19]C,'3'!C[2],RC[-1])"

J'ai testé ceci par exemple mais ça ne marche pas

For i = 8 To 20

For t = -1 To -19

Range("b" & i + 1).FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[t]C,'3'!C[2],RC[-1])"

Next

Next

merci par avance

Bonsoir,

Ce n'est pas clair comme demande. Fais ceci. Avec l'enregistreur de macro, uniquement dans la cellule B9, enregistre ta formule. Si le résultat est concluant, transmet-nous la formule enregistrée. Cela nous aide à décortiquer la formule.

sinon.

Pour moi, la syntaxe doit être comme cela :

Range("b" & i + 1).FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C[?],R[" & t & "]C,'3'!C[2],RC[-1])"

Erreur logique sur le 2ème paramètre (quel numéro de colonne car on traite les colonnes entières) et erreur de syntaxe sur le 3ème paramètre.

Bonjour,

A priori, je ne peux tester mais je dirais que le code suivant devrait répondre à tes attentes :

For i = 9 To 27
For t = -1 to -19 Step -1
Range("b" & i).FormulaR1C1 = "=SUMIFS('3'!C[3],'3'!C,R[t]C,'3'!C[2],RC[-1])"
Next t
Next i

A tester

Bonjour,

Tant qu'on y est, sans incrémentation :

[B9].resize(20).formulalocal="ta_formule_qui_va_bien"

"ta_formule_qui_va_bien" s'entend avec les bonnes références absolues/relatives ligne/colonne

eric

sub EcritCode
    dim lngIndex as Long

    for lngIndex = 9 to 27 
        debug.print "''''''Range(""b" & lngIndex & """).FormulaR1C1 = ""=SUMIFS('3'!C[3],'3'!C,R[" & _
        -lngIndex + 8 & "]C,'3'!C[2],RC[-1])"
    next lngIndex

end sub
Rechercher des sujets similaires à "code incrementation next"