VBA: éviter visuellement le passage d'une feuille à l'autre

Résolu
Dylan68700 Messages postés 19 Statut Membre -  
eriiic Messages postés 24581 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

1 réponse

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour, salut Eriic (et bonne année si je ne l'avais pas encore fait)
      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
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut vaucluse, tous mes voeux pour 2014

      oui, tu as raison, il faut bien Application. devant. Réponse trop rapide...
      De toute façon, sans vba ne comprend pas

      eric
      0
    3. Dylan68700
       
      Yes merci, avec application. devant ça marche parfaitement.
      Merci pour la réactivité, et bonne année :)
      0
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Mis en résolu à ta place.
      Vers ton titre en haut pour la prochaine fois.
      eric
      0