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 l'objet worksheet a échoué [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut La méthode paste de l'objet worksheet a échoué
    Bonjour,

    Je pense que déterrer un post non résolu sur le sujet n'était pas la solution. Je crée donc le miens et j'apporte du détail.
    Contexte : J'ai un document avec beaucoup de feuilles, dans chaque feuille, je copie un graphique et le colle en dessous, puis je retravail les series qui sont dedans.
    Soucis : de manière périodique, sans que je vois de différence entre les moments où ça marche et les moments où ça ne marche pas, la méthode past échoue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim gra As ChartObject
            For Each gra In ws.ChartObjects
                If Left(gra.Chart.ChartTitle.Caption, 3) = "Cin" Then
                    gra.Copy
                    Exit For
                End If
            Next
            'ws.Cells(Placement_resultat, 8)
            ws.Paste (ws.Cells(Placement_resultat, 8))
            Set gra = Nothing
    Pour tester, je tape débogage puis je relance direct, la copie du graphique se fait. (Donc potentiellement et même si c'est ça, je pourrais juste gérer l'erreur en lui demandant de réessayer)
    Le soucis, c'est qu'un peu plus tard, sans sortir de la boucle "pour chaque feuille" (donc dans le traitement de la dite feuille qui a déjà eu une erreur), lors que je travail sur les series de mon graphique copié, l'objet est null.

    J'ai lancé la macro sur plusieurs classeurs différents, et plusieurs fois sur chaque classeur, le bug n'apparait pas sur des feuilles spécifiques.

    ... Que faire ?

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    j'avoue que les graphique c'estv pas ma tasse de thé
    mais je viens essayé il semblerait que chartTitle ne soit pas valable pour tous
    donc est tu sur d'avoir un chart de cet acabit

    ensuite si je comprends bien tu copie ce chart a volonté pour en modifier les serie c'est donc toujours le même
    dans ce cas la tu pourrais simplement copier le 1 a chaque fois comme ca on fait sauter ta boucle sur "Cin"
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Merci de t'y intéresser

    En fait, le charttitle fonctionne dans ce cas, même quand le paste ne fonctionne pas, si je regarde les variables que j'espionne, le graphique a bien été trouvé par ma boucle.
    Pour ce qui est de ce que j'en fais, j'ai un seul graphique par feuille à sélectionner, je le colle en dessous et je modifie les séries en lui demandant de présenter x=ln(f(x)).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Logchart.SeriesCollection(Logchart.SeriesCollection.Count)
                For iii = résultat(6) + 1 To résultat(7) + 1
                    xval(iii - résultat(6) - 1) = serT.XValues(iii)
                    yval(iii - résultat(6) - 1) = serT.Values(iii)
                Next
                .XValues = xval
                .Values = yval
            End With
    Mais à chaque feuille (je n'ai pas affiché l'architecture de mon programme autour de mon extrait, mais dans l'idée, il y a une boucle générale "pour chaque feuille du classeur"), je prend un nouveau graphique. Et ma petite boucle n'est là que pour sélectionner le graphique ayant le titre souhaité.

    Je suis assez mauvais pour exprimer mon idée, dis moi si tu me comprends ><

  4. #4
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut
    Bonjour,

    je débute et novice hein donc j'essaie juste.

    Si je comprends bien c'est quand tu colles le graphique que ça plante.

    As tu essayé de te créer un modèle de graphique (vu que tu fais un copier/coller ça doit toujours être le même) et de l'appeler pour le mettre dans ta feuille correspondante....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
            "nom du graphique personnel"
    Truc bête : le plantage ne vient il pas d'une feuille où tu n'aurais pas de données ou non positionnées de la même façon? Je pense que tu l'as déjà vérifié plein de fois...

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 568
    Par défaut
    Bonjour

    Tu colles ce qui est dans le presse papier pas le graphique : quand il ne trouve pas un graphique, il continue à coller le presse papier.

    Modifie la ligne ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If Not gra Is Nothing Then Ws.Paste (Ws.Cells(Placement_resultat, 8))

  6. #6
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    @nouveauVBA
    Ce qui m'intéresse n'est pas uniquement le modèle de graphique mais également les données des series qu'il comprend, si je prend un modèle enregistré, je n'aurais pas ces données. C'est une macro de post traitement qui apporte une analyse supplémentaire à un modèle excel déjà existant.
    Et comme je l'ai dit, en effet j'ai déjà fait quelques tests et ça ne vient pas ni d'une feuille ni d'un classeur spécifique, ça ne semble pas contextuel.

    @78chris
    J'ai ajouter cette vérification qui sera toujours intéressante mais après un nouveau test, ça ne règle pas le problème malgré tout.
    Par contre je peux essayer de vider le presse papier après cette étape. Je tente ça et si je répond pas dans les minutes suivants, c'est que ça n'a pas aidé !

    Merci en tout cas pour votre aide, c'est cool

  7. #7
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Alors !
    Ca fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Cible As dataObject
     
    Set Cible = New dataObject
    Cible.setText ""
    Cible.putInClipboard
     
    Set Cible = Nothing
    Mais !
    Après une dizaine de feuilles :

    Et ça n'arrive pas à chaque fois, et pas sur la même feuille quand ça arrive.

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

Discussions similaires

  1. [XL-2010] La méthode Paste de la classe Worksheet a échoué
    Par romain241192 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/07/2015, 18h40
  2. [XL-2007] Erreur d'exécution 1004 La méthode Select de l'Objet Worksheet a échoué !
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 08/11/2013, 15h39
  3. [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
  4. [XL-2007] erreur: "la méthode .Range de l'objet worksheet a échoué"
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 28/10/2010, 09h08
  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