Bonjour le Forum,
J'ai besoin de votre aide sur une macro bricolée à l'enregistreur de macro et qui doit se dupliquer dans des lignes plus bas avec un pas bien définit.
En fait la macro s'utilise sur un onglet de récap. Cet onglet récapitule un ou plusieurs onglets. Les onglets porteront toujours le titre suivant "EC (x)".
Initialement dans le fichier il n'y a qu'un onglet EC (1) si besoin on peut le dupliquer et ainsi il se nomme EC (2).
Il peut y avoir de 1 EC jusqu'à 15. Pour éviter que la macro ne s'applique sur les 15 (elle est déjà longue sur 1), j'aimerais tester le nombre d'onglets commençant par "EC (" et appliquer une loop autant de fois qu'il y a d'onglet en augmentant les n° de ligne dans la macro d'un certains pas.
La macro (si vous voyez comment l'optimiser au passage) :
Ca c'est valable pour le EC (1), s'il y a un EC (2), il faudrait que la macro recommence en décalant les lignes de +49 (à part le premier range) ce qui donnerait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub MEFdescriptif() Application.ScreenUpdating = False Range("X12:AE12").Select Selection.Copy Range("C12:J47").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False With Selection .Font.Bold = False .Copy .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .HorizontalAlignment = xlJustify End With Range("AF3").Select Selection.Copy Range("A3:C3").Select ActiveSheet.Paste Chercher_Colorier_plage_liste Range("A3:L52"), Range("O12:O52") Application.ScreenUpdating = True End Sub
Voilà, qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub MEFdescriptif() Application.ScreenUpdating = False Range("X12:AE12").Select Selection.Copy Range("C61:J96").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False With Selection .Font.Bold = False .Copy .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .HorizontalAlignment = xlJustify End With Range("AF52").Select Selection.Copy Range("A52:C52").Select ActiveSheet.Paste Chercher_Colorier_plage_liste Range("A52:L101"), Range("O61:O101") Application.ScreenUpdating = True End Sub
Ca devrait pouvoir se faire je pense
Merci à tous !![]()
Partager