Bonjour le forum !
J’ai créé une macro à l’aide de l’enregistreur de macro, me permettant de dupliquer les colonnes jaunes (voir fichier ci-joint) à la même hauteur que sa colonne de droite.
Néanmoins cette macro s’effectue tant que la cellule bleue est non vide.
J’ai donc créé et répété la macro de base en changeant à chaque fois la cellule de référence (décaler de 3 cellules à chaque fois).
C’est long et il y a une limite de taille, qui je pense pourrait être contourné.
Serait il possible d’optimiser cette macro afin qu’elle ne fasse pas 10000 lignes ?
Je n'ai copié que les 3 premières, en vrai y en a 70 environ.
Bonne journée,
Etn
J’ai créé une macro à l’aide de l’enregistreur de macro, me permettant de dupliquer les colonnes jaunes (voir fichier ci-joint) à la même hauteur que sa colonne de droite.
Néanmoins cette macro s’effectue tant que la cellule bleue est non vide.
J’ai donc créé et répété la macro de base en changeant à chaque fois la cellule de référence (décaler de 3 cellules à chaque fois).
C’est long et il y a une limite de taille, qui je pense pourrait être contourné.
Serait il possible d’optimiser cette macro afin qu’elle ne fasse pas 10000 lignes ?
VB:
Range("AA9").Select
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(500, 0)).Select
Selection.ClearContents
ActiveCell.Offset(-1, 0).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveCell.End(xlDown).Offset(0, -1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
If IsEmpty(Range("AD9")) Then Exit Sub
Range("AD9").Select
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(500, 0)).Select
Selection.ClearContents
ActiveCell.Offset(-1, 0).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveCell.End(xlDown).Offset(0, -1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
If IsEmpty(Range("AG9")) Then Exit Sub
Range("AG9").Select
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(500, 0)).Select
Selection.ClearContents
ActiveCell.Offset(-1, 0).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
ActiveCell.End(xlDown).Offset(0, -1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Je n'ai copié que les 3 premières, en vrai y en a 70 environ.
Bonne journée,
Etn
Pièces jointes
Dernière édition: