IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copier le bloc des lignes visibles sur une autre feuille et ce message erreur


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut copier le bloc des lignes visibles sur une autre feuille et ce message erreur
    bonjour
    j'aimerais copier le bloc des colonnes et lignes visibles et le coller sur une autre feuille et ca marchait bien avant et maintenant j'ai ce genre de message erreur
    je ne comprends pas
    merci pour votre aide
    Nom : 22.jpg
Affichages : 171
Taille : 38,7 Ko
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sheet_d="feu1"
    Set plage = Range("A1", "d10").SpecialCells(xlCellTypeVisible)
    plage.Select: plage.Copy
    Sheets(sheet_d).Select
    Range("A2").Select
    ActiveSheet.Paste
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sheet_d="feu1"
    Set plage = Range("A1", "d10").SpecialCells(xlCellTypeVisible)
    plage.Select: plage.Copy
    Sheets(sheet_d).Select
    Range("A2").Select
    With Sheets(sheet_d)
     .Activate
     .Range("a2").Select
     .Paste
    End With

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Tu payes cher cette affreuse habiture de travailler à coups de Activate, Select, etc ... au lieu de travailler directement avec les objets Excel.
    Voilà à quoi se résume tout ton "code" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1", "d10").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("feu1").Range("A2")

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    merci encore unparia.
    pourquoi chercher compliqué alors c'est si simple avec ton code .
    mon code je l'ai trouvé sur ce forum et en generant la macro depuis excel.donc j'aimerais savoir pourquoi des activates et select c'est pas bien?
    j'aimerais comprendre mes bétises

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la procédure VBA travaillant directement sur les objets Excel, il n'est pas nécessaire (contrairement à des utilisateurs humains) d'activer des choses (des feuilles, des cellules) ou de les sélectionner pour agir dessus.

    c'est d'ailleurs source de ralentissements et de stromboscopie des écrans que de faire du Activate et du Select

    quand on débute, on fait tous pareil : on conceptualise la procédure en "mimant" ce qu'on ferait manuellement .... c'est d'ailleurs le même travers que réalise l'enregistreur de macro puisqu'il "capture" nos actions au pied de la lettre

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    mon code je l'ai trouvé sur ce forum
    Ce n'est jamais une vraie bonne idée que celle de procéder ainsi (chercher des codes sur la toile). C'est souvent ainsi que l'on répète des erreurs, qu'on s'enferme dans un carcan, etc ...
    Tu as sur ta machine une aide VBA interne. C'est elle, que tu dois lire. C'est elle, qui doit te conduire. Prends le temps d'en lire les rubriques.
    et en generant la macro depuis excel
    l'enregistreur de macros enregistre tout, y compris tes gestes (d'où les select, etc ..). Le code qui en résulte n'a dès lors d'utilité que celle de te permettre d'y découvrir l'essentiel. Il est à épurer.
    j'aimerais savoir pourquoi des activates et select c'est pas bien
    C'est lourd, ralentisseur et quelquefois trompeur et avec effets induits pouvant être fâcheux (la ligne 6 de ton premier code est par exemple dans ce cas).

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    merci à unparia et joe.levrai.je commence à comprendre un peu la nuance entre l'utilisation d un language objet sur vba et le code généré par la macro excel.
    il me faudrait petit à petit plus d'exemples pour vraiment bien comprendre

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    il me faudrait petit à petit plus d'exemples pour vraiment bien comprendre
    Regarde ce que j'ai écrit plus haut :

    Ce n'est jamais une vraie bonne idée que celle de procéder ainsi (chercher des codes sur la toile). C'est souvent ainsi que l'on répète des erreurs, qu'on s'enferme dans un carcan, etc ...
    Tu as sur ta machine une aide VBA interne. C'est elle, que tu dois lire. C'est elle, qui doit te conduire. Prends le temps d'en lire les rubriques.
    Il se trouve justement que les rubriques de cette aide VBA interne sont presque toutes assorties d'exemple(s)... Lorsque sans exemple, c'est que même pas nécessaire.

    PS : fais s'il te plait le tour des discussions que tu as ouvertes et libère (un clic sur le tag RESOLU) celles qui ont été résolues.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarder des données variables sur une autre feuille
    Par flash3300 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/01/2015, 14h19
  2. Copie de plusieurs lignes visibles dans une autre feuille
    Par Shanock dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2014, 23h12
  3. Copier les cellules d'une ligne sélectionnée sur une autre feuille
    Par Liloo14 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/07/2013, 21h19
  4. Copier - coller ligne entière sur une autre feuille
    Par s.echeff dans le forum Excel
    Réponses: 1
    Dernier message: 10/04/2009, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo