Macro répéter une action sur les lignes inférieurs
Kasano
-
Kasano -
Kasano -
Bonjour le forum,
Aujourd'hui, je souhaiterais répéter une opération sur les lignes inférieurs de mon fichier excel.
Cette action est la suivante, je sélectionne ma ligne E26:Y26 et je la copie colle sur les deux lignes disponibles en dessous. Ainsi, je souhaiterais répéter cette opération sur les lignes suivantes ...(E29:Y29, E32:Y32, E35:Y35 ....)
J'imagine qu'une macro est nécessaire. J'ai créé ma macro mais je n'arrive pas à la répéter.
Sub CP()
'
' CP Macro
'
'
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("E27:E28").Select
ActiveSheet.Paste
End Sub
Pourriez vous m'aider ?
Merci d'avance
Pascal
Aujourd'hui, je souhaiterais répéter une opération sur les lignes inférieurs de mon fichier excel.
Cette action est la suivante, je sélectionne ma ligne E26:Y26 et je la copie colle sur les deux lignes disponibles en dessous. Ainsi, je souhaiterais répéter cette opération sur les lignes suivantes ...(E29:Y29, E32:Y32, E35:Y35 ....)
J'imagine qu'une macro est nécessaire. J'ai créé ma macro mais je n'arrive pas à la répéter.
Sub CP()
'
' CP Macro
'
'
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Range("E27:E28").Select
ActiveSheet.Paste
End Sub
Pourriez vous m'aider ?
Merci d'avance
Pascal
2 réponses
-
Bonjour
un exemple (tu modifies lideb (ligne début) et lifin (ligne fin)
Option Explicit Const lideb = 26 Const lifin = 62 Public Sub Kopie() Dim plage As Range, li As Long With ActiveSheet For li = lideb To lifin Step 3 Set plage = .Range("E" & li & ":" & "Y" & li) plage.Copy .Range("E" & li + 1) plage.Copy .Range("E" & li + 2) Next li End With End Sub
Cdlmnt -
La même avec quelques explications
Public Sub Kopie() Dim plage As Range, li As Long ' depuis la feuille active With ActiveSheet ' Depuis l ligne lideb jusqu'à la ligne lifin avec un pas de 3 ' puisqu'on passe de 26 à 29 puis 32 etc ... For li = lideb To lifin Step 3 ' on definit pa plage à copier "Eli:Yli" Set plage = .Range("E" & li & ":" & "Y" & li) ' on la copie dans les deux lignes qui suivent li (soit li+1 et li+2) ' à partir de la colonne E plage.Copy .Range("E" & li + 1) plage.Copy .Range("E" & li + 2) ' passage à la valeur suivane de li Next lit End With End Sub
RQ. J'ai oublié le point devant les instruction Range dans ma procedure initiale
.Range dans un With activesheet indique qu'on adresse dans cette feuille là
Bonne journée