Créer une formule avec Step +11

Bruno80

XLDnaute Nouveau
Bonjour

j'ai une formule dans la cellule A1 et B1

je désire créer une formule qui va copier cette formule avec un step de 11 colonne

donc A1 + 11 ensuite L11 ensuite W11

même chose avec B1 + 11

J'ai testé cela sans succès

HTML:
Sub Macro7()
'
' Macro7 Macro
'
For i = 1 To 254 Step 11

    'Range(50, i).Select
    ActiveCell.Offset(0, -11).Range("A1:B1").Select
    Selection.Copy
    ActiveCell.Offset(0, 11).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Select
    Application.CutCopyMode = False
   ' ActiveCell.FormulaR1C1 = _
       " Ma formule 1"

    ActiveCell.Offset(0, 1).Range("A1").Select
   ' ActiveCell.FormulaR1C1 = _
          " Ma formule 2"
    ActiveCell.Offset(1, 0).Range("A1").Select
    
    Next
End Sub

merci
 

James007

XLDnaute Barbatruc
Re : Créer une formule avec Step +11

Bonjour,

Je ne comprends pas la destination ...
Il faut faire la différence entre le décalage en lignes et celui qui existe en colonnes ... à tester ...
Code:
Sub Test()
Dim i As Integer
For i = 1 To 23
    Range("A1:B1").Copy Destination:=ActiveSheet.Cells(11, 11 * i)
Next
End Sub

A +
 

Bruno80

XLDnaute Nouveau
Re : Créer une formule avec Step +11

Bonjour Forum, Bonjour James007,

J'y suis presque le code suivant est bon, mais c'est la formule qui reste à modifier
dans les fais, cette dernière ne prend pas en considération la variable Z.

est-ce que vous auriez une solution


Sub Test()
Dim i As Integer
Dim Z As Variant

For i = 1 To 34 Step 11
Z = -48 - i
Range("A50").Select

Application.CutCopyMode = False
ActiveSheet.Cells(50, i).FormulaR1C1 = _
"=IF(Px!R[Z]C[1]<>"""",Px!R[Z]C[1]/OFFSET(Px!R1C[1],+Model!R19C,0)-1,"""")"


Next
End Sub

merci
 
Dernière édition:

Bruno80

XLDnaute Nouveau
Re : Créer une formule avec Step +11

Bonjour à tous, j'ai trouvé la façon d'inclure la variable dans la formule
" & Z & "

Mais le résultat n'est pas celui que je souhaitais
Dans les faits, avec la variable Z

je voulais avoir
Pour le premier pas: B
par la suite D
par la suite F, H, J, K

HTML:
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[1]<>"""",Px!R[-48]C[1]/OFFSET(Px!R1C[1],+Model!R19C,0)-1,"""")"
    Range("B50").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[1]<>"""",Px!R[-48]C[1]/OFFSET(Px!R1C[1],+Model!R19C[-1],0)-1,"""")"
    Range("L50").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[-8]<>"""",Px!R[-48]C[-8]/OFFSET(Px!R1C[-8],+Model!R19C[-11],0)-1,"""")"
    Range("M50").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[-8]<>"""",Px!R[-48]C[-8]/OFFSET(Px!R1C[-8],+Model!R19C[-12],0)-1,"""")"
    Range("W50").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[-17]<>"""",Px!R[-48]C[-17]/OFFSET(Px!R1C[-17],+Model!R19C[-22],0)-1,"""")"
    Range("X50").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(Px!R[-48]C[-17]<>"""",Px!R[-48]C[-17]/OFFSET(Px!R1C[-17],+Model!R19C[-23],0)-1,"""")"
    Range("X51").Select

Bruno80
 
Dernière édition:

Bruno80

XLDnaute Nouveau
Re : Créer une formule avec Step +11

Bonjour James,

C'est justement ce que j'était entrain de préparer :)

Créer une macro qui va faire un Step de 11 colonnes
mais qui dans sa formule fait Step de 1 colonne

EX: colonne A et B, (symbol A et B)

A50 =IF('P1'!B2<>"",'P1'!B2/OFFSET('P1'!B$1,+'M1'!A$19,0)-1,"")
B50= =IF('P1'!C2<>"",'P1'!C2/OFFSET('P1'!C$1,+'M1'!A$19,0)-1,"")

On fait un Step de 11 colonnes

Colonne L et M, (symbol C et D)
(dans la formules on ne fait qu'un step de 1)

L50 =IF('P1'!D2<>"",'P1'!D2/OFFSET('P1'!D$1,+'M1'!A$19,0)-1,"")
M50=IF('P1'!E2<>"",'P1'!E2/OFFSET('P1'!E$1,+'M1'!A$19,0)-1,"")

Donc, Tant qu'il y a des données dans la feuille R1, la macro continue

Bruno
 

Pièces jointes

  • Step11.xls
    32 KB · Affichages: 68
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Créer une formule avec Step +11

Bonjour James, Bruno,

Si j'ai bien compris, test ceci:

Code:
Sub Macro1()
Dim Col As Variant, i As Integer, Lig As Integer, c As Integer
Col = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")
c = 0
For i = 1 To 34 Step 11
  For j = i To i + 1
    For Lig = 50 To 54
      Cells(Lig, j).FormulaLocal = "=SI(P1!" & Col(c) & Lig - 48 & "<>"""";P1!" & Col(c) & Lig - 48 & "/DECALER(P1!" & Col(c) & "$1;M1!A$19;0)-1;"""")"
    Next
    c = c + 1
  Next
Next
End Sub
 

Bruno80

XLDnaute Nouveau
Re : Créer une formule avec Step +11

Bonjour Skoobi,

cette ligne de code
HTML:
Cells(Lig, j).FormulaLocal = "=SI(P1!" & Col(c) & Lig - 48 & "<>"""";P1!" & Col(c) & Lig - 48 & "/DECALER(P1!" & Col(c) & "$1;M1!A$19;0)-1;"""")"
me donne un message d'erreur: run-time error 1004
application-defined or object defined error
 

Bruno80

XLDnaute Nouveau
Re : Créer une formule avec Step +11

Bonjour Forum, Skoobi et James007,

J'ai essayer de changer certaine choses,
ce qui me permet de croire que c'est .FormulaLocal qui cause le problème
si vous avez des sources de solutions je suis preneur

Bruno
 

skoobi

XLDnaute Barbatruc
Re : Créer une formule avec Step +11

Bonjour Bruno,

dans ce cas, enlève Local et remplace SI par IF, DECALER par OFFSET et ";" par ",":
Cells(Lig, j).Formula = "=IF(P1!" & Col(c) & Lig - 48 & "<>"""",P1!" & Col(c) & Lig - 48 & "/OFFSET(P1!" & Col(c) & "$1,M1!A$19,0)-1,"""")"
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
321
Réponses
2
Affichages
406

Statistiques des forums

Discussions
312 299
Messages
2 086 986
Membres
103 419
dernier inscrit
mk29