Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vba : insertion colonnes et recopie formule sur plages discontinues

4 réponses
Avatar
Domi
Bonsoir à tous,

2 petites question sur des syntaxes VBA (le resultat avec l'enregistreur
n'est pas concluant...)
Quelqu'un pourrait-il me une syntaxe plus "orthodoxe" pour faire cela :

1°) Inserer 2 colonnes vides entre chaque colonne de E à K ?

2°) J'utilise ce type de code pour recopier une formule sur une plage
variable de la colonne E
With Range("E11", Range("A65000").End(xlUp).Offset(0, 4))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With

Comment modifier la syntaxe pour recopier cette même formule dans les
colonnes H, K et N sur la même hauteur de plage que E ?
Pour le moment j'applique 4 fois la macro en changeant la colonne...:o(

Merci
Domi

4 réponses

Avatar
isabelle
bonjour Domi,

essaie avec,

For i = 5 To 14 Step 3
With Range(Cells(11, i), Cells(Range("A65000").End(xlUp).Offset(0,
4).Row, i))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With
Next

isabelle


Bonsoir à tous,

2 petites question sur des syntaxes VBA (le resultat avec l'enregistreur
n'est pas concluant...)
Quelqu'un pourrait-il me une syntaxe plus "orthodoxe" pour faire cela :

1°) Inserer 2 colonnes vides entre chaque colonne de E à K ?

2°) J'utilise ce type de code pour recopier une formule sur une plage
variable de la colonne E
With Range("E11", Range("A65000").End(xlUp).Offset(0, 4))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With

Comment modifier la syntaxe pour recopier cette même formule dans les
colonnes H, K et N sur la même hauteur de plage que E ?
Pour le moment j'applique 4 fois la macro en changeant la colonne...:o(

Merci
Domi


Avatar
Domi
Ca marche bien ;o)

Pour l'insertion des colonnes vides t'as pas une soluce plus simple que la
mienne ?:

Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Columns("I:I").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight

Merci Isabelle
Domi

"isabelle" a écrit dans le message de news:

bonjour Domi,

essaie avec,

For i = 5 To 14 Step 3
With Range(Cells(11, i), Cells(Range("A65000").End(xlUp).Offset(0,
4).Row, i))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With
Next

isabelle


Bonsoir à tous,

2 petites question sur des syntaxes VBA (le resultat avec l'enregistreur
n'est pas concluant...)
Quelqu'un pourrait-il me une syntaxe plus "orthodoxe" pour faire cela :

1°) Inserer 2 colonnes vides entre chaque colonne de E à K ?

2°) J'utilise ce type de code pour recopier une formule sur une plage
variable de la colonne E
With Range("E11", Range("A65000").End(xlUp).Offset(0, 4))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With

Comment modifier la syntaxe pour recopier cette même formule dans les
colonnes H, K et N sur la même hauteur de plage que E ?
Pour le moment j'applique 4 fois la macro en changeant la colonne...:o(

Merci
Domi




Avatar
isabelle
j'oubliais l'insertion de colonne,

For i = 5 To 14 Step 3
Union(Columns(i), Columns(i + 1)).Insert Shift:=xlToRight
With Range(Cells(11, i), Cells(Range("A65000").End(xlUp).Offset(0,
4).Row, i))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With
Next

isabelle


Bonsoir à tous,

2 petites question sur des syntaxes VBA (le resultat avec l'enregistreur
n'est pas concluant...)
Quelqu'un pourrait-il me une syntaxe plus "orthodoxe" pour faire cela :

1°) Inserer 2 colonnes vides entre chaque colonne de E à K ?

2°) J'utilise ce type de code pour recopier une formule sur une plage
variable de la colonne E
With Range("E11", Range("A65000").End(xlUp).Offset(0, 4))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With

Comment modifier la syntaxe pour recopier cette même formule dans les
colonnes H, K et N sur la même hauteur de plage que E ?
Pour le moment j'applique 4 fois la macro en changeant la colonne...:o(

Merci
Domi


Avatar
isabelle
oup's on part de la colonne F au lieu de E, alors il faut modifier
Union(Columns(i), Columns(i + 1)).Insert Shift:=xlToRight
par
Union(Columns(i + 1), Columns(i + 2)).Insert Shift:=xlToRight

isabelle


Ca marche bien ;o)

Pour l'insertion des colonnes vides t'as pas une soluce plus simple que la
mienne ?:

Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Columns("I:I").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight

Merci Isabelle
Domi

"isabelle" a écrit dans le message de news:

bonjour Domi,

essaie avec,

For i = 5 To 14 Step 3
With Range(Cells(11, i), Cells(Range("A65000").End(xlUp).Offset(0,
4).Row, i))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With
Next

isabelle


Bonsoir à tous,

2 petites question sur des syntaxes VBA (le resultat avec l'enregistreur
n'est pas concluant...)
Quelqu'un pourrait-il me une syntaxe plus "orthodoxe" pour faire cela :

1°) Inserer 2 colonnes vides entre chaque colonne de E à K ?

2°) J'utilise ce type de code pour recopier une formule sur une plage
variable de la colonne E
With Range("E11", Range("A65000").End(xlUp).Offset(0, 4))
.FormulaR1C1 = "Formule...."
.Value = .Value
End With

Comment modifier la syntaxe pour recopier cette même formule dans les
colonnes H, K et N sur la même hauteur de plage que E ?
Pour le moment j'applique 4 fois la macro en changeant la colonne...:o(

Merci
Domi