Boucle dans macro excel

Fermé
inquisiteur 57 - 28 mars 2013 à 13:53
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 28 mars 2013 à 15:26
Bonjour à tous,

n'étant pas un pro Vba
j'aimerais inlure la macro ci dessous dans une boucle qui s'arrette à la derniere cellule vide + 5 de la colonne E
et ne plus obbliger la macro à remplir 3333 lignes ce qui la ralenti ( +/- 1 MINUTE )
je ne sais pas si je dois partir avec While ou Do Loop ou For ??? et comment la rédiger
cette macro à été réalisée en enregistrement direct et très légérement épurée

Sub Recopie_formules_dans_Matrice()
'
' 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


je vous en remercie par avance
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 mars 2013 à 15:26
Bonjour,
M'étonne pas :-)
Dans la ligne 2 tu met les formules qu'il faut dans les bonnes colonnes, tu met les format cellule comme tu les veux, bref, tu arrange la ligne 2 comme tu veux que toute la feuille soit.
ensuite tu emploi le code
Sub Recopie_ligne()
'lermite 28/3/2013
    Application.ScreenUpdating = False
    With Sheets("Matrice")
        .Rows(2).Hidden = False
        .Rows(2).Copy .Rows("9:3333")
        .Rows(2).Hidden = True
        .Range("B45").Select
    End With
End Sub

Vu qu'apparemment ta feuille est vide à part la ligne 2, c'est pas possible de calculer tes 3333 à l'avance !!
A+
0