Creation boucle

INQUISITEUR 57 Messages postés 2 Statut Membre -  
INQUISITEUR 57 Messages postés 2 Statut Membre -
bonjour à tous
j'ai créé epar le mode d'enregistrement la macro ci-dessous qui en résumé recopie 1 format puis des formules cahées en ligne 2 et les recopient de la ligne 9 à la ligne 3333
mon probleme est double:
cette macro est longue ( +/- 1 minute ) et au départ je ne sais pas combien de lignes j'ai réellement besoin ( mini 200 à ????? )
je pense que cette macro dévrait etre incule dans une boucle mais je ne sais si je dois partir avec While ou Do Loop ?
Je peux teste la Colonne E pour savoir la derniere ligne vide mais rajouter 5 lignes supplémentaires de formules pour avoir un peu de reserves de lignes sans relancer la macro
ci dessous la macro en question

'
' Macro jcr le 18/12/12
Sheets("Matrice").Select
Rows("1:3").Select
Selection.EntireRow.Hidden = False
Rows("2:2").Select
Selection.Copy
Rows("9:3333").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("T2").Select
Range("A9:A12").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("A9:A3333"), Type:=xlFillDefault
Range("A9:A3333").Select
Range("P2:Q2").Select
Selection.Copy
Range("P9:Q3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("P9:Q3333,T1,V1:W1").Select
Range("V2").Activate
Application.CutCopyMode = False
Range("T2").Select
Selection.Copy
Range("T9:T3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("V2:x2").Select
Application.CutCopyMode = False
Selection.Copy
Range("V9:x3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("aa2").Select
Application.CutCopyMode = False
Selection.Copy
Range("aa9:aa3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Af2:Ag2").Select
Application.CutCopyMode = False
Selection.Copy
Range("Af9:Ag48").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Ak2:Aq2").Select
Application.CutCopyMode = False
Selection.Copy
Range("Ak9:Aq3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("As2:ba2").Select
Application.CutCopyMode = False
Selection.Copy
Range("As9:ba3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("be2").Select
Application.CutCopyMode = False
Selection.Copy
Range("be9:be3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("bg2:bi2").Select
Application.CutCopyMode = False
Selection.Copy
Range("bg9:bi3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Bk2").Select
Application.CutCopyMode = False
Selection.Copy
Range("Bk9:Bk3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Bm2:bo2").Select
Application.CutCopyMode = False
Selection.Copy
Range("Bm9:Bo3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Br2:cf2").Select
Application.CutCopyMode = False
Selection.Copy
Range("Br9:cf3333").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Rows("2:2").Select

Selection.EntireRow.Hidden = True

Range("B45").Select

End Sub

merci à tous pour votre aide
salutations

m
A voir également:

2 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

en t^te de ta macro mets déjà cette ligne
Application.screenupdating=false 
qui te fera gagner pas mal de temps et t'épargnera les yeux
effectivement il faudrait une boucle mais il est + que difficile (pour moi) de comprendre ce que tu veux en lisant ta macro surtout quand tu écris "qui en résumé" qui introduit un flou dans tes explications

désolé
0
INQUISITEUR 57 Messages postés 2 Statut Membre
 
Bonjour,
merci pour la réponse, je viens de la tester et en effet l'afficgage ne déffile plus
pour le déroulement de la macro, il est simple :

il se deroule en 2 épapes
- 1) je prends lme formart qui est caché en ligne 2 et je l'applique sur les lignes de 9 à 3333

- 2) je prends cette fois des formules dans differents colonne toujours sur la ligne 2
que je recopie arbitrairement de la ligne 9 à 3333

Mon but est de supprimer le 3333 et le remplacer par un arret sur la derniere posisition de la colonne E + 5 lignes suplémùentaires

encore merci
0