OVH Cloud OVH Cloud

Raccourcir mon code VBA

25 réponses
Avatar
YANN24
Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je colle
sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la page
"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de mon
tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"

10 réponses

1 2 3
Avatar
HD
A la place de :
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Tu peux mettre directement :
Range("B116").FormulaR1C1 = "=Analyse!R[-104]C[10]"

Et à la place de :
Range("B117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Tu peux mettre directement :
Range("B117:E117").FormulaR1C1 = "=Analyse!R[-85]C[10]"

--
@+
HD
Avatar
Oliv'
HD que je salut a écrit dans
d6s9rt$15pp$
A la place de :
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Tu peux mettre directement :
Range("B116").FormulaR1C1 = "=Analyse!R[-104]C[10]"

Et à la place de :
Range("B117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").FormulaR1C1 = "=Analyse!R[-85]C[10]"
Tu peux mettre directement :
Range("B117:E117").FormulaR1C1 = "=Analyse!R[-85]C[10]"


J'allais dire pareil
mais il peux ajouter une boucle pour les colonnes suivantes
C4
For L = 116 To 138

Range(Cells(L, 2), Cells(L, 5)).FormulaR1C1 = "=Analyse!R[-" & C & "]C[10]"
Range(Cells(L,6),Celss(L,10)).FormulaR1C1 = "=Analyse!R[-" & C & "]C[1]"
C4-19
Next L

Mais tu dois adapter les valeurs parce que si tu commances à la ligne 104 et
que tu diminus de 19 tu va être vite hors tableau.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Phil99999
Sub MAJ_mai_court()
Dim i, j, k As Integer
Dim col As Variant

col = Array("10", "10", "10", "10", "1", "1", "2", "1", "1", "6")

For i = 116 To 117
k = 0
For j = 2 To 11

If i = 116 Then
Cells(i, j).FormulaR1C1 = "=R[-104]C[" & CStr(col(k)) & "]"
Else
Cells(i, j).FormulaR1C1 = "=R[-85]C[" & CStr(col(k)) & "]"
End If
k = k + 1
Next j
Next i


End Sub


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je colle
sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la page
"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de mon
tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"


Avatar
Phil99999
SAns oublier le "Analyse!" devant le R !! Je l'ai oublié ...


Sub MAJ_mai_court()
Dim i, j, k As Integer
Dim col As Variant

col = Array("10", "10", "10", "10", "1", "1", "2", "1", "1", "6")

For i = 116 To 117
k = 0
For j = 2 To 11

If i = 116 Then
Cells(i, j).FormulaR1C1 = "=R[-104]C[" & CStr(col(k)) & "]"
Else
Cells(i, j).FormulaR1C1 = "=R[-85]C[" & CStr(col(k)) & "]"
End If
k = k + 1
Next j
Next i


End Sub


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je colle
sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la page
"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de mon
tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"




Avatar
ru-th
variante

Sub test2()
With Sheets("analyse")
x = 116
y = 12
suite:
Range("b" & x & ":e" & x).Value = .Range("l" & y & ":o" & y).Value
Range("f" & x & ":g" & x).Value = .Range("g" & y & ":h" & y).Value
Range("h" & x & ":i" & x) = .Range("j" & y)
Range("j" & x & ",k" & x) = .Range("k" & y & ",h" & y)
If x = 116 Then
x = 117: y = 32
GoTo suite
End If
End With
End Sub

a+
rural thierry
"YANN24" a écrit dans le message de news:

Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je colle
sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la page
"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de
mon

tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"


Avatar
YANN24
Bonjour,
merci Phil.
ça fonctionne impecable.
Maintenant, je voudrais supprimer les "0". C'est à dire, si la cellule à
copier = 0, alors on ne copie rien. C'est possible?
Merci d'avance.
YANN


SAns oublier le "Analyse!" devant le R !! Je l'ai oublié ...


Sub MAJ_mai_court()
Dim i, j, k As Integer
Dim col As Variant

col = Array("10", "10", "10", "10", "1", "1", "2", "1", "1", "6")

For i = 116 To 117
k = 0
For j = 2 To 11

If i = 116 Then
Cells(i, j).FormulaR1C1 = "=R[-104]C[" & CStr(col(k)) & "]"
Else
Cells(i, j).FormulaR1C1 = "=R[-85]C[" & CStr(col(k)) & "]"
End If
k = k + 1
Next j
Next i


End Sub


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je colle
sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la page
"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de mon
tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"






Avatar
ru-th
Correctif
Range("j" & x & ",k" & x).Value = .Range("k" & y & ",q" & y).Value
remplacer le h par le q
désolé

"ru-th" a écrit dans le message de news:

variante

Sub test2()
With Sheets("analyse")
x = 116
y = 12
suite:
Range("b" & x & ":e" & x).Value = .Range("l" & y & ":o" & y).Value
Range("f" & x & ":g" & x).Value = .Range("g" & y & ":h" & y).Value
Range("h" & x & ":i" & x) = .Range("j" & y)
Range("j" & x & ",k" & x) = .Range("k" & y & ",h" & y)
If x = 116 Then
x = 117: y = 32
GoTo suite
End If
End With
End Sub

a+
rural thierry
"YANN24" a écrit dans le message de
news:


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je
colle


sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la
page


"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de
mon

tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"






Avatar
YANN24
Re,
merci pour le code. C'est vrai que c'est plus simple que mon truc.
Mais j'ai commencé avec le code de Phil, donc je vais continuer avec.
Merci quand même.
Sur le code de Phil9999, je voudrais rajouter, si possible, que si les
valeurs à copier sont égales à 0, alors on ne copie rien. Est-ce possible?
Merci.
YANN


Correctif
Range("j" & x & ",k" & x).Value = .Range("k" & y & ",q" & y).Value
remplacer le h par le q
désolé

"ru-th" a écrit dans le message de news:

variante

Sub test2()
With Sheets("analyse")
x = 116
y = 12
suite:
Range("b" & x & ":e" & x).Value = .Range("l" & y & ":o" & y).Value
Range("f" & x & ":g" & x).Value = .Range("g" & y & ":h" & y).Value
Range("h" & x & ":i" & x) = .Range("j" & y)
Range("j" & x & ",k" & x) = .Range("k" & y & ",h" & y)
If x = 116 Then
x = 117: y = 32
GoTo suite
End If
End With
End Sub

a+
rural thierry
"YANN24" a écrit dans le message de
news:


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je
colle


sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la
page


"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde ligne de
mon

tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"











Avatar
Phil99999
Comme ça ??


Sub MAJ_mai_court()
Dim i, j, k As Integer
Dim col As Variant

col = Array("10", "10", "10", "10", "1", "1", "2", "1", "1", "6")

For i = 116 To 117
k = 0
For j = 2 To 11

If i = 116 Then
Cells(i, j).FormulaR1C1 = "=Analyse!R[-104]C[" & CStr(col(k)) & "]"
Else
Cells(i, j).FormulaR1C1 = "=Analyse!R[-85]C[" & CStr(col(k)) & "]"
End If

If Cells(i, j).Value = 0 Then
Cells(i, j).Value = ""
End If

k = k + 1
Next j
Next i


End Sub
Avatar
ru-th
salut

vires les formular1c1 pour des value
(si ses valeurs qui t'intéressent et pas les formules

devrait le faire (pas testé)
a+
rural thierry

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

Re,
merci pour le code. C'est vrai que c'est plus simple que mon truc.
Mais j'ai commencé avec le code de Phil, donc je vais continuer avec.
Merci quand même.
Sur le code de Phil9999, je voudrais rajouter, si possible, que si les
valeurs à copier sont égales à 0, alors on ne copie rien. Est-ce possible?
Merci.
YANN


Correctif
Range("j" & x & ",k" & x).Value = .Range("k" & y & ",q" & y).Value
remplacer le h par le q
désolé

"ru-th" a écrit dans le message de news:

variante

Sub test2()
With Sheets("analyse")
x = 116
y = 12
suite:
Range("b" & x & ":e" & x).Value = .Range("l" & y & ":o" & y).Value
Range("f" & x & ":g" & x).Value = .Range("g" & y & ":h" & y).Value
Range("h" & x & ":i" & x) = .Range("j" & y)
Range("j" & x & ",k" & x) = .Range("k" & y & ",h" & y)
If x = 116 Then
x = 117: y = 32
GoTo suite
End If
End With
End Sub

a+
rural thierry
"YANN24" a écrit dans le message de
news:


Bonjour,
je voudrais savoir s'il est possible de raccourcir mon code VBA.
En fait je copie la valeur de la cellule de la page "Analyse", et je
colle


sur ma page.
Puis je descend d'une ligne, et copie la valeur de la cellulle de la
page


"Analyse", mais en descendant de 20 lignes.
cette opération se répette 22 fois.
Est-ce possible de racourcir le code?
Merci d'avance.
YANN

Ci-après, le code actuelle pour ma première ligne et ma seconde
ligne de




mon
tableau :
Sub MAJ_mai()
' MAJ_mai Macro
'ligne 01
Range("B116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("C116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("D116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("E116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[10]"
Range("F116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("G116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("H116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[2]"
Range("I116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("J116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[1]"
Range("K116").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-104]C[6]"
'ligne 02
Range("B117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("C117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("D117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("E117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[10]"
Range("F117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("G117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("H117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[2]"
Range("I117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("J117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[1]"
Range("K117").Select
ActiveCell.FormulaR1C1 = "=Analyse!R[-85]C[6]"













1 2 3