GNT sans publicité, site mobile, fonctionnalitées exclusives...

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]"
Lire les 25 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
HD
Le #2611121
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
Oliv'
Le #2611091
HD 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Phil99999
Le #2611051
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]"


Phil99999
Le #2611031
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]"




ru-th
Le #2610951
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"
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]"


Publicité
Suivre les réponses
Poster une réponse
Anonyme