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 :

Problème Copy et PasteSpecial [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Par défaut Problème Copy et PasteSpecial
    Bonjour à tous,

    J'ai un problème qui m'échappe complètement.
    J'utilise une macro du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Range("E6").Select
        Selection.Copy
        Range("F6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveSheet.Paste
        Application.CutCopyMode = False
    Sur un excel vierge, pas de problème elle fonctionne. Par contre, quand je la copie dans un de mes fichiers un peu plus compliqué (avec sub, fonctions, variables public, tableaux structurés...), impossible de la faire fonctionner. Même si je la laisse complètement inchangée, à partir du moment où elle est dans un module de mon autre excel :
    - la copie de la cellule ne fonctionne pas
    - j'ai un message d'erreur concernant Pastespecial :
    Erreur de compilation : Membre de méthode ou de données introuvable
    Il doit y avoir un paramètre du fichier qui bloque, mais je n'ai aucune idée.

    Quelqu'un aurait une idée ? D'avance merci beaucoup de votre aide.
    Bonne soirée,
    Geoffrey

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans évoquer l'inutilité de l'usage des méthodes Select, Activate, et propriété Selection, il n'y a aucune raison que cela ne fonctionne pas dans des procédures quelconques puisque l'on n'utilise aucune parentalité de l'objet Range donc cela doit fonctionner même si le résultat attendu ne répond pas à ton attente.

    Cependant sans visualiser le code des procédures dont tu dis rencontrer des problèmes, il est impossible de pouvoir te répondre sérieusement sauf si nous étions magicien, devin, chaman, utilisateur de boule de cristal, lecteur de mars de café, etc.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 732
    Par défaut
    Bonjour, sauf erreur ou omission de ma part, les deux macros ci-dessous font la même chose.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Range("E6").Select
    Selection.Copy
    Range("F6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    End Sub
     
    Sub Test2()
    Range("F6").Value = Range("E6").Value  ' Il est d'ailleurs conseillé de rajouter systématiquement la parentalité ex: with worksheets("Feuil1") en en sortie End with
    End Sub
    Il doit y avoir un paramètre du fichier qui bloque, mais je n'ai aucune idée.
    En ce qui concerne la question, je pencherais peut-être pour des cellules fusionnées dont la réponse peut des fois être surprenante? Mais je suis d'accord avec #Philippe Tulliez (), il n'y a pas assez de renseignements pour vous aider plus.

    Cordialement

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Par défaut Finalement
    Bonjour à tous les deux, bonjour le forum,

    Incompréhensible. J'ai copié tous les onglets, puis toutes les macros dans un nouvel excel. Et tout fonctionnait. Je travaille une demi journée dessus et à la fin, ça bug à nouveau. Enfin .copy fonctionne, .paste non...

    J'ai finalement utilisé la solution de contournement consistant à mettre le contenu de mon tableau structuré excel dans une variable, et j'ai copié cette variable dans un autre tableau structuré excel. Non sans mal car je n'avais jamais manipulé des tableaux. En somme, je suis partie de l'idée "Range("F6").Value = Range("E6").Value" mais avec des tableaux. J'ai n'ai donc pas trouvé la cause du problème, mais j'ai trouvé une solution.

    Pour répondre aux autres questions/commentaires :
    - Le code très long, j'ai préféré éviter le flood et me concentrer sur le problème Copy/paste qui me semblait assez particulier (et ce code simple tel que je l'ai écrit ne fonctionnait effectivement pas)
    - Assez particulier pour (j'avoue) avoir espéré que c'était un problème connu n'ayant pas besoin de faire appel à vos dons chamaniques
    - Compte tenu de mon niveau vba, j'ai aussi préféré vous éviter une attaque en lisant mon code (qui doit être du niveau d'une dissertation écrite par un enfant de 4 ans)
    - Le vrai code incluait évidemment les bonnes parentalités (quand même ! )
    - Détail que j'aurais peut être du préciser : le copier/coller en question était un tableau structuré dans un autre tableau structuré.
    - Rapport à l'enfant de 4 ans, le Selection, activate, select &co sont des outils manquant de fiabilité, mais que je ne sais pas vraiment remplacer facilement. J'essaie de plus en plus de créer les bons objets pour leur affecter des valeurs (comme ici des matrices) mais ça me demande tellement plus temps (que je n'ai pas toujours), je me laisse donc amadouer. Et puis il faut avouer que je suis un enfant de l'enregistreur de macros.

    Aveux d'un massacreur de code.
    Mes excuses pour le manque de clarté en tous cas, et merci à tous les deux !
    Bonne journée,
    Geoffrey

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour Geoffrey,
    Assez particulier pour (j'avoue) avoir espéré que c'était un problème connu n'ayant pas besoin de faire appel à vos dons chamaniques
    La remarque était pour le fait qu'avec ce qui était montré il était impossible de répondre sérieusement ce que confirme par l'annonce que tu fais de l'utilisation des tableaux structurés.

    Cette information était primordiale pour orienter la réponse

    Par contre, il est tout à fait possible d'utiliser la méthode Copy avec un objet ListObject (tableau structuré)

    Si le but était de copier en ne conservant que la valeur ce que laisse supposer l'usage de PasteSpecial-Value, on peut utiliser la méthode AdvancedFilter qui fonctionne parfaitement avec les objet ListObject

    A lire éventuellementsur ce sujet La méthode AdvancedFilter et l'objet ListObject
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Par défaut Trouvé !
    Bonjour à tous,

    Mea culpa, en retravaillant sur ce même fichier, je me rends compte que j'avais créer un formulaire "Selection".
    Du coup, les selection.pastevalue ne fonctionnaient plus, et c'est la raison pour laquelle ça le faisait uniquement pour ce fichier.
    D'où l'intérêt de partager les fichiers sur les forums...

    J'ai changé le nom du formulaire, tout est revenu dans l'ordre !

    Merci encore de votre aide.
    Geoffrey

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

Discussions similaires

  1. Copy et pasteSpecial lent ,problème de presse papier?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2010, 11h11
  2. Réponses: 1
    Dernier message: 11/04/2007, 16h58
  3. [VB.NET] Problème copie spéciale
    Par Mserrant dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/04/2007, 09h54
  4. problème copie Tableau de Excel vers Word
    Par el_titou007 dans le forum VBA Word
    Réponses: 2
    Dernier message: 02/04/2007, 09h42
  5. Problème copie FTP
    Par Unusual dans le forum Windows
    Réponses: 3
    Dernier message: 02/04/2007, 09h24

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