Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Optimisation de code

  • Initiateur de la discussion Initiateur de la discussion MoiMajid
  • 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 !

M

MoiMajid

Guest
Bonjour à tous,

Voilà je suis en train de faire un travail d'automatisation de calcul où je suis sensé copier-coller plusieurs feuilles excel 13 pour etre exact faire des calcul et effacer avant de copier-coller la prochaine.Et voilà comment je le fais :

Worksheets("Prev par agence").Activate
Worksheets("Prev par agence").Cells.Select
Selection.ClearContents
Worksheets("Janvier").Select
Cells.Select
Selection.Copy
Worksheets("Prev par agence").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Ma question est comment puis je optimiser cette partie de code qui se répète 13 Fois (x2 car je fais 2 calcul différents)?

Merci d'avance pour vos réponses!
 
Re : Optimisation de code

Bonjour,

Ma question est comment puis je optimiser cette partie de code qui se répète 13 Fois (x2 car je fais 2 calcul différents)?

oui sans doute, en utilisant une boucle "for" voir une boucle "for each".... A noter les "select" et "activate" sont rarement utiles en vba, ne servent qu'à ralentir le code.... A voir également plutôt que de copier TOUTES les cellules de la feuille, préférable de faire la copie que de la plage de cellules concernée... sans plus de détails, difficile d'en dire plus...

bon après midi
@+
 
Re : Optimisation de code

For Each ? je ne suis pas très calé en for each c'est pour cette raison que je ne l'ai pas utilisée, je ne suis pas sûr que l'on puisse executer un for each sur plusieurs feuille Excel.

Plusieurs feuilles Excel car il est demandé que les données Janvier à Décembre soient sur des feuilles différentes et dont les plages (Nombres de lignes et colonne varient) mais il est toujours possible de copier que la plage concernée merci pour le conseil.

Si les activate et select ne servent à rien pourquoi est ce que je me retrouve avec des erreurs d'execution lorsque je lance ma macro.

Merci en tout cas pour ta réponse rapide je vais réduire la plage de copie c'est deja ca !
 
Re : Optimisation de code

Re,

For Each ? je ne suis pas très calé en for each c'est pour cette raison que je ne l'ai pas utilisée, je ne suis pas sûr que l'on puisse executer un for each sur plusieurs feuille Excel.

sans problème, "For Each" est fait pour boucler sur une collection.... "worksheets" est bien la collection des feuilles de calcul d'un classeur... ci dessous un exemple de boucle....

Code:
Option Explicit
Sub test()
Dim ws As Worksheet
For Each ws In Worksheets
    MsgBox ws.Name
Next ws
End Sub
 
Re : Optimisation de code

Re,

pour éviter les "select", tu pourrais remplacer ceci :
Code:
Worksheets("Prev par agence").Activate
Worksheets("Prev par agence").Cells.Select
Selection.ClearContents

par cela :
Code:
Worksheets("Prev par agence").Cells.ClearContents
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…