Raccourcir mon code VBA
Le
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]"
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]"

Poser une question


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
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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"