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

XL 2013 rapidité d une macro

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 !

bertilemeusien

XLDnaute Nouveau
Bonjour,
Je ne connais pas le langage VISUAL BASIC en lui-même. Je fais des petites macros que je regroupe ensuite.
Je collectionne des jouets et pour savoir ceux qui me manquent j’ai créé ce tableau EXCEL.
Cette macro, LATOTALE dure plus de 9 minutes. Ma version d’EXCEL est de 2013 !
Je voulais savoir si cela est dû à mon PC ou à la version d’EXCEL ?
J’accepte, bien sur, tout autre macro !

L’onglet JOUET est la liste de tous les jouets possibles et devient JOUET à trouver après la macro TOTJOUET.
L’onglet BPZ est la liste de tous les jouets possibles et devient à trouver après la macro LATOTALE.
Il y a des séries que je ne collectionne pas : toutes celles où il y a NON dans la colonne A
Il y a également ses séries qui sont complètes : toutes celles où il y a 0 dans la colonne G

Et pour la liste des séries encore à compléter, je crée une nouvelle feuille (jouet à trouver, BPZ à trouver) où je supprime toutes les lignes «VIDES ».

Ensuite je trie les résultats en fonction du nombre de la colonne G de la feuille JOUET à trouver ou à trouver.

Voila j’espère avoir été assez clair dans mes explications et souhait ! Merci pour votre aide
 

Pièces jointes

Solution
Bonsoir,
En PJ une V2.
1- J'ai supprimé toutes les macros devenues inutiles.
2- J'ai accroché les macros aux boutons dans Jouets et BPZ.
3- J'ai mis des commentaires dans la macro
Pour simplifier, j'ai fait de la macro initiale une macro paramétrée avec feuille de départ et feuille d'arrivée, ce qui donne :
VB:
Sub UpdateAtrouver()        ' On lance la mise à jour de la feuille "à trouver" à partir de la feuille "BPZ"
    UpdateSheet "BPZ", "à trouver"
End Sub

Sub UpdateJouetAtrouver()             ' On lance la mise à jour de la feuille "JOUET à trouver" à partir de la feuille "JOUET"
    UpdateSheet "JOUET", "JOUET à trouver"
End Sub

Sub UpdateSheet(SheetFrom, SheetTo)
    Macro initiale qui utilise SheetFrom et SheetTo pour...
Bonjour Bertilemeusien, Thunder,
Je n'ai pas compris toutes les manips à faire.
Alors un simple essai en PJ avec seulement :
1- J'efface toute la feuille "à trouver" ( texte, couleurs, MFC ... )
2- Je remplis la feuille "à trouver" avec toutes les lignes de BPZ dont la colonne A est non vide, ne contient pas Non, et la quantité à trouver est non nulle.
Sur mon vieux PC avec XL2007 cela prends 120ms
Donc à partir de là vous pourriez continuer sur cette base.

La macro est automatique lorsqu'on sélectionne la feuille "à trouver"
 

Pièces jointes

Dernière édition:
Bonsoir,
Super la rapidité mais comment vous faites pour que la macro se lance automatiquement. Je veux faire la même pour les jouets! Pour moi, cela serait plusa facile avec un bouton de lancement sur la feuille BPZ!
Mais je confirme que la rapidité est supersonique!!
 
Bonsoir,
En PJ une V2.
1- J'ai supprimé toutes les macros devenues inutiles.
2- J'ai accroché les macros aux boutons dans Jouets et BPZ.
3- J'ai mis des commentaires dans la macro
Pour simplifier, j'ai fait de la macro initiale une macro paramétrée avec feuille de départ et feuille d'arrivée, ce qui donne :
VB:
Sub UpdateAtrouver()        ' On lance la mise à jour de la feuille "à trouver" à partir de la feuille "BPZ"
    UpdateSheet "BPZ", "à trouver"
End Sub

Sub UpdateJouetAtrouver()             ' On lance la mise à jour de la feuille "JOUET à trouver" à partir de la feuille "JOUET"
    UpdateSheet "JOUET", "JOUET à trouver"
End Sub

Sub UpdateSheet(SheetFrom, SheetTo)
    Macro initiale qui utilise SheetFrom et SheetTo pour travailler
End Sub

Votre problème, je pense, est que les feuilles BPZ et JOUET sont trop riches en terme d'encadrement, couleurs, MFC .... et que la suppression de toutes les lignes vides n'aide pas.
A tester, faites un retour si bug ou évolutions demandées.

comment vous faites pour que la macro se lance automatiquement.
Il existe certaines macro dites événementielles qui se déclenchent automatiquement sur un événement comme clic sur cellule, modification de cellules, activation page. Ces macros doivent avoir un nom spécifique et être dans la feuille concernée.
Pour plus de détails :
 

Pièces jointes

Merci beaucoup! cela marche à merveille!!
 
- 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

  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
268
Réponses
4
Affichages
221
Réponses
5
Affichages
38
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…