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 :

La méthode Paste de la classe Worksheet a échoué


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 3
    Points
    3
    Par défaut La méthode Paste de la classe Worksheet a échoué
    Bonjour à tous,

    J'ai un problème sur une macro: après création de graphiques, je souhaite les copier-coller dans une feuille récapitulative. Problème: sur mon pc, mon programme fonctionne parfaitement, mais sur le pc de mon boss, à l'exécution du programme, je reçois le message d'erreur "La méthode Paste de la classe Worksheet a échoué".

    C'est d'autant plus frustrant que lorsque je clique sur Débogage et que je continue la lecture du programme sans rien modifier, le programme continue (pour re-bugger à l'instruction Paste suivante ou je relance une nouvelle fois le programme sans modification avec succès)...

    J'ai du coup essayé le programme sur un troisième pc, aucun souci... je pense que le problème vient donc du pc de mon patron mais je n'en connais pas la source.

    Une idée?

    Je précise que les versions d'Excel sont identiques quel que soit le poste...

    Merci d'avance!

    PS: Extrait de la macro: (tableau et non_qualite sont des feuilles du classeur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Dim emp1, emp2, emp3, emp4, emp5, emp6, emp7, emp8 As Range
     
    Set emp1 = tableau.Range("A6:E24")
    non_qualite.ChartObjects(2).Activate
        ActiveChart.ChartArea.Copy
    tableau.Paste
    tableau.ChartObjects(1).Left = emp1.Left
    tableau.ChartObjects(1).Top = emp1.Top
    tableau.ChartObjects(1).Height = emp1.Height
    tableau.ChartObjects(1).Width = emp1.Width
     
    Set emp2 = tableau.Range("F6:J24")
    non_qualite.ChartObjects(1).Activate
        ActiveChart.ChartArea.Copy
    tableau.Paste
    tableau.ChartObjects(2).Left = emp2.Left
    tableau.ChartObjects(2).Top = emp2.Top
    tableau.ChartObjects(2).Height = emp2.Height
    tableau.ChartObjects(2).Width = emp2.Width

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Est-ce que le niveau de sécurité est le même sur le PC de ton patron ?

    PS: quand tu mets du code utilise le bouton [#] pour le formater.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    De quoi parles-tu pour le niveau de sécurité?
    Les macros sont activées dans les deux pc si c'est la question.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Il y a différents paramètres à ajuster dans la Gestion de la confidentialité (compléments, ActiveX, macros, VBA,...)
    J'ai pensé que ça pouvait être quelque chose là-dedans qui était différent.

    Et si tu changeais les .Paste par .PasteSpecial ?

    En passant, sur cette ligne
    Dim emp1, emp2, emp3, emp4, emp5, emp6, emp7, emp8 As Range
    seul emp8 est déclarée en Range. Les autres sont tous des Variant

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    J'ai déjà testé de changer les paste en pasteSpecial, j'ai rajouté des select et des activate en vain... je vais regarder les paramètres de sécurité, mais j'ai déjà transmis à mon boss une dizaine de fichiers contenant des macros et il n'y avait jamais eu de souci :-(

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    En utilisant une variable objet "ChartObject" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Sub Test()
     
        Dim emp As Range
        Dim Graph As ChartObject
     
        Set emp = tableau.Range("A6:E24")
     
        Set Graph = non_qualite.ChartObjects(2)
        Graph.Chart.ChartArea.Copy
     
        tableau.Paste
     
        Set Graph = tableau.ChartObjects(1)
     
        With Graph
     
            .Left = emp.Left
            .Top = emp.Top
            .Height = emp.Height
            .Width = emp.Width
     
        End With
     
        Set emp = tableau.Range("F6:J24")
     
        Set Graph = non_qualite.ChartObjects(1)
     
        Graph.Chart.ChartArea.Copy
     
        tableau.Paste
     
        Set Graph = tableau.ChartObjects(2)
     
        With Graph
     
            .Left = emp.Left
            .Top = emp.Top
            .Height = emp.Height
            .Width = emp.Width
     
        End With
     
    End Sub
    Hervé.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Je testerais çà demain, mais c'est franchement frustrant d'avoir un code qui fonctionne sur tous les pc sauf celui qui est important -_-"

    Merci à vous!

  8. #8
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    C'est sûr, sur celui du boss ça la fout mal

    Hervé.

Discussions similaires

  1. [XL-2007] Erreur 1004 : la methode Paste de la classe Worksheet a échoué
    Par bricko dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/06/2013, 01h53
  2. [XL-2010] La méthode Paste de la classe Worksheet a échoué
    Par FK_1509 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/04/2013, 10h01
  3. Méthode Select de la classe worksheet a échoué
    Par marinef dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/07/2009, 13h36
  4. La methode paste de la classe worksheet a échoué
    Par jean-paul lepetit dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2007, 17h59
  5. Méthode Paste de la classe Worksheet a échoué
    Par cerberuspau dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/06/2007, 12h13

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