Simplification macro

  • Initiateur de la discussion Initiateur de la discussion julien974
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

julien974

XLDnaute Occasionnel
Bonjour,

J'ai de nouveau besoin de votre aide amis Excelien! ^^

J'aimerai optimiser la macro suivante pour un temps d'execution plus rapide.

HTML:
Sub hihi()

Sheets("Feuil2").Activate
Columns(1).ClearContents

Range("A3").Value = "DATE"
Sheets("Feuil3").Activate
Range("C2").Activate

For j = Sheets("Feuil3").Range("C2").Column To Sheets("Feuil3").Range("IV2").End(xlToLeft).Column
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Next j

End Sub

Merci de votre aide précieuse,

Juli3n974
 
Re : Simplification macro

bonjourjulien974,

à tester :
Code:
With Sheets("Feuil2")
    .Columns(1).ClearContents
    .Range("A3").Value = "DATE"
    For j = 3 To Sheets("Feuil3").Cells(2, Sheets("Feuil3").Columns.Count).End(xlToLeft).Column
        For i = 1 To 4
            Sheets("Feuil3").Cells(2, j).Copy .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
        Next i
    Next j
End With

a+
 
Re : Simplification macro

Rebonjour,

J'ai fais ceci et ça va un peu plus vite...
Peut on modifier le corps de la macro (la boucle)?

HTML:
Sub hihi()

Application.ScreenUpdating = False

Sheets("Feuil2").Activate
Columns(1).ClearContents

Range("A3").Value = "DATE"
Sheets("Feuil3").Activate
Range("C2").Activate

For j = Sheets("Feuil3").Range("C2").Column To Sheets("Feuil3").Range("IV2").End(xlToLeft).Column
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
    
    Sheets("Feuil3").Activate
    Cells(2, j).Copy
    Sheets("Feuil2").Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Next j

ScreenUpdating = true
End Sub

Merci bcp
 
Re : Simplification macro

Re


Un suggestion avec le code de mromain


Code:
Sub macro 2()
[COLOR="Green"]'Permet de réutiliser simplement le code pour l'appliquer à d'autres feuilles
'il suffit d'adapter ce qui est en bleu[/COLOR]
Dim fs As Worksheet:        Set fs = [COLOR="Blue"]Sheets("Feuil3")[/COLOR]
Dim fd As Worksheet:        Set fd = [COLOR="Blue"]Sheets("Feuil2")[/COLOR]
Application.ScreenUpdating = False
With fd
    .Columns(1).ClearContents
    .Range("A3").Value = "DATE"
    For j = 3 To fs.Cells(2, fs.Columns.Count).End(xlToLeft).Column
        For i = 1 To 4
            fs.Cells(2, j).Copy .[A66536].End(xlUp).Offset(1)
        Next i
    Next j
End With
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Re : Simplification macro

Bonjour à tous

quelque chose doit m'échapper, vois pas trop l'intérêt de la boucle :

Code:
For i = 1 To 4
    fs.Cells(2, j).Copy .[A66536].End(xlUp).Offset(1)
Next i

la variable "i" n'étant pas utilisée... c'est la même copie qui est faites..

bon après midi
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
827
Réponses
1
Affichages
327
Réponses
5
Affichages
931
Réponses
4
Affichages
743
Retour