VBA: éviter visuellement le passage d'une feuille à l'autre
Résolu
Dylan68700
Messages postés
19
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
j'ai mis en place des macros dans un fichier, pour qu'il soit plus facile à prendre en main.
Mes macros fonctionnent, néanmoins j'aimerais savoir s'il était possible de modifier mon code afin de ne plus avoir à "subir" les changemets de feuilles lors de l'exécution de la macro ?
En d'autres termes, comment peut-on remplacer le fameux "Sheets("X").Activate", et rester sur la feuille d'origine, tout en récupérant des informations de la page "X" pour les coller dans cette feuille d'origine ?
Exemple, dans mon cas j'ai deux feuilles, nommées "2013" et "LISTE 2013". Voici le début de ma macro. En m'aidant juste sur ce petit morceau de code, je pourrais l'adapter au reste:
Sheets("2013").Activate
ActiveSheet.Range("$A$1:$AB$31").AutoFilter Field:=9, Criteria1:="100€"
D_L_C = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:A" & D_L_C).Copy (Sheets("LISTE 2013").Range("A7"))
Ainsi, ma macro permet d'aller récupérer des données de la feuille "2013" selon la condition "100€", et de les coller dans la colonne A de la feuille "LISTE 2013" à partir de la cellule A7.
Est-il possible de simplifier ce code, dans le but de ne plus voir le passage d'une feuille à l'aute lors de l'exécution de la macro ?
Merci à vous,
Dylan68700
j'ai mis en place des macros dans un fichier, pour qu'il soit plus facile à prendre en main.
Mes macros fonctionnent, néanmoins j'aimerais savoir s'il était possible de modifier mon code afin de ne plus avoir à "subir" les changemets de feuilles lors de l'exécution de la macro ?
En d'autres termes, comment peut-on remplacer le fameux "Sheets("X").Activate", et rester sur la feuille d'origine, tout en récupérant des informations de la page "X" pour les coller dans cette feuille d'origine ?
Exemple, dans mon cas j'ai deux feuilles, nommées "2013" et "LISTE 2013". Voici le début de ma macro. En m'aidant juste sur ce petit morceau de code, je pourrais l'adapter au reste:
Sheets("2013").Activate
ActiveSheet.Range("$A$1:$AB$31").AutoFilter Field:=9, Criteria1:="100€"
D_L_C = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:A" & D_L_C).Copy (Sheets("LISTE 2013").Range("A7"))
Ainsi, ma macro permet d'aller récupérer des données de la feuille "2013" selon la condition "100€", et de les coller dans la colonne A de la feuille "LISTE 2013" à partir de la cellule A7.
Est-il possible de simplifier ce code, dans le but de ne plus voir le passage d'une feuille à l'aute lors de l'exécution de la macro ?
Merci à vous,
Dylan68700
A voir également:
- VBA: éviter visuellement le passage d'une feuille à l'autre
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
1 réponse
Bonjour,
tu pourrais (quoique certaines actions necessitent une feuille active dont peut-être le filtre) mais plutôt que de tout reprendre ajoute :
screenupdating = false
au début du code. En plus ça ira beaucoup plus vite.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
tu pourrais (quoique certaines actions necessitent une feuille active dont peut-être le filtre) mais plutôt que de tout reprendre ajoute :
screenupdating = false
au début du code. En plus ça ira beaucoup plus vite.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
petite question:
je viens de tester ta proposition sur des fichiers que j'utilise, et bizarrement elle ne donne pas le m^me résultat que que la ligne que j'emploie, à savoir
Application.screenupdating = false
je ne doute pas que tu puisses me dire pourquoi pour satisfaire ma curiosité
Salut en attendant
oui, tu as raison, il faut bien Application. devant. Réponse trop rapide...
De toute façon, sans vba ne comprend pas
eric
Merci pour la réactivité, et bonne année :)
Vers ton titre en haut pour la prochaine fois.
eric