Boucle Excel VBA

bonjour à tous

j'écris la macro ci-dessous en enregistrement direct

cette macro recopie un format caché en ligne 2 et le recopie de la ligne 9 à 3333

puis recopie des formules toujours masquées en ligne 2 et le recopoie de la ligne 9 à 3333

je voudrais inclure cette macro dans une bouble à fin de l'optimiser car elle dure +/- 1 minute

je voudrais arreter cette macro àpres un teste sur la colonne E pour connaitre le nobre de ligne réellement utile + 5 ligne de gras

mon niveau vb&a état tres bas je ne sais quel méthode employer ???

voici la macro

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

Par avance merci pour vos aides

Cordialement

Salut Inquisiteur et bienvenue sur le Forum,

A la place de nous fournir une macro assez abracadabrante enregistrée, tu ferais mieux de nous fournir ton fichier – quitte à y enlever les données confidentielles - et d’indiquer ce que tu désires sur la base d’exemples simples de quelques lignes.

Cordialement.

Bonjour

Je prépare le fichier excel et, vous pourrais voir le code et la vitesse d'exécution

Bon WE a tous

Bonsoir à Tous,

Juste pour faire un petit coucou à Yvouille

a+

papou

bonjour à tous,

je viens de terminer le fichier avec sa macro que je joint

je voudrais pouvoir optimiser cette macro afin que le remplissage forcé à 3333 lignes se fasse sur le nombre de lignes réellement utile ( le test peut se faire sur la Col F qui contient la dernier ligne remplie )

je voudrais avoir 5/6 lignes de + que la dernière cellule de la colonne F pour avoir une petite marge

Un plus serait de voir un Progress Barre en % car on ne sait pas quand la macro est lancée le temps qu'elle va durée

dans le fichier joint, je trouve que la macro va vite, avec de vrai donnée pour les 3333 lignes, elle dure +/- 1 minute

Meci d'avance pour les conseils

bonne journée

slt

Ton fichier n'est pas passé

Bonjour,

je fais un nouvel essai d'envoi car jr ne sais si le fichier excel est joint??

slt et bonne journée

Re bonjour,

bah non toujours pas alors ton fichier est trop gros il doit faire au maxi 300 ko

a+

papou

Bonjour,

effectivement il fait 1921 ko

j'essai de le reduire et je l'envoi

A+


Cette fois j'espere que c'est la bonne

le fichier vide de formule fait 41 ko, il faudra lancer la macro en appuyant sur le boution

bonne réception

A+

Bonsoir inquisiteur le forum

moi je mets 2,5 secondes pour remplir toutes tes colonnes sur 3333 lignes

j'ai pas cliqué de bouton j'en ai pas vu mais j'ai décoché une checkbox

a+

papou


Re Bonjour Inquisiteur le forum

ton fichier en retour avec une petite modif et le temps de traitement 1,50 seconde

a+

papou

27inquisiteur-v1.rar (226.33 Ko)

Re Bonjour Inquisiteur le forum

voilà ton fichier en retour avec un traitement chez moi de 0,75 seconde

a+

papou

Merci pour le coup demain,

Je regarde demain avec des données réelle

Bonne soirée à tous

Bonsoir Inquisiteur le forum

tu n'as pas chargé la dernière version

a+

papou

merci,

je regarde les version V1 & V2 + Base et je teste avec des valeurs réelles

encorre merci et A+

bonne jounée

rebonjour,

je viens de tester V2 + rapide que V1 et base

j'ai un peu optimiser le code ( j'ai laissé les trace des suppressions par ' ' )

sur ma machine le fichier vide V2 la macro s'éffectue en 3.66 s

apres avoir continué le test avec de vrai valeurs

recopie de 3333 lignes de formules ( besoin réel pour ce fichier 1185 lignes )

la durée est de 54.24 secondes...

(c'est un peu mieux que dans ma version de base +/- 1 minutes)

dans le fichier joint je vous ai mis 2 copie d'écran de la MSBOX

à bientôt et bonne journée

4inquisiteur-v2.xlsm (114.55 Ko)
Rechercher des sujets similaires à "boucle vba"