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 :

Mise d'un texte dans le presse-papier [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut Mise d'un texte dans le presse-papier
    Bonjour,

    j'ai réalisé une petite appli sous Excel 2013 dont une des étapes consiste à mettre le contenu d'une variable String dans le presse-papier. Pour ce faire, j'ai utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set mydata = New DataObject
    mydata.SetText Mon_Texte
    mydata.PutInClipboard
    C'était un code que j'utilisais dans une appli Access 2010 qui fonctionne parfaitement.

    Sauf que ça ne marche pas avec Excel 2013 (ni Excel 2010, d'ailleurs). Il ne met rien dans le presse-papier. Par ailleurs, j'ai testé sur Excel 2003 (sur mon ordi de boulot) et ça marche très bien ! D'où vient le problème ?

    Je précise que mon ordi perso fonctionne sous Windows 8 64 bits (avec Excel 2010 et Excel 2013) et que mon ordi de boulot fonctionne sous Windows XP 32 bits.

    Est-ce le fait que mon ordi perso soit en 64 bits qui cause le problème ? Pourtant cette routine fonctionne sous Access que ce soit sur mon ordi perso et celui du boulot...

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ca fonctionne ici avec Windows 7 et Excel 2013 32 bits.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    Merci pour l'information.

    Cela confirme mon idée que cela vient de la version 64 bits. Quelqu'un aurait une idée sur la façon de faire pour mettre une variable dans le presse-papier en version 64 bits ?

    Un grand merci par avance

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    C'est ta version d'Excel qui est 64 bits ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    Bonne question... Je sais que mon Windows est en 64 bits. C'est certain.

    Par contre, je ne sais pas dans quelle version est Office. Je regarderai ce soir en rentrant chez moi.

    Est-ce que le problème pourrait venir de là, selon toi ?

    Si oui, comment faire ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    C'est possible, il y a pas mal de restrictions avec Office 64 bits.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    Après vérification, j'ai la version 32 bits de Office...

    Du coup, d'où vient le problème ???

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Tu as bien coché la référence Microsoft Forms ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    Oui, j'ai vérifié cela. C'est bien coché. J'ai pu voir sur plusieurs sites l'importance de cocher cette référence. Mais mon problème ne vient pas là. Une autre idée?

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie de remplacer "Mon_Texte" par "Hello World".

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    J'ai essayé avec le code suivant (et après avoir revérifié que la référence Microsoft Forms 2.0 Object Library est bien cochée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set mydata = New DataObject
    mydata.SetText "Hello World"
    mydata.PutInClipboard
    Sans succès. ça ne vient donc pas de ma variable...

    Autre idée ?

  12. #12
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Pas d'instruction "On Error..." en amont ? S'il y en a une, enlève-la.

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    Eh non malheureusement, je n'avais pas mis d'"on error", le code entier est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Copie_Presse_Papier()
     
    Set mydata = New DataObject
    mydata.SetText "Hello World"
    mydata.PutInClipboard
     
    End Sub
    Mais j'ai rééssayé dans un tout nouveau fichier Excel (histoire de ne pas le parasiter par des références que j'avais activé dans l'ancien). J'ai mis ça dans un fichier Excel 97-2003 (histoire de pouvoir contenir les macros). J'ai bien activé la référence Forms 2.0.
    J'ai lancé la routine et rien. Plus exactement, il n'indique aucune erreur.

    Mais, étrangement, j'ai bien l'impression que c'est mon fichier d'origine qui bogue. Quand je lance cette routine à partir du nouveau fichier alors que l'ancie est fermé, ça marche. Alors que si l'ancien est ouvert, ça ne marche pas !
    Je pense qu'il y a une référence ou quelque chose dans l'ancien qu'Excel n'aime pas...

    Je vais faire plus d'essai. Je te tiens au courant.

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    J'ai finalement trouvé d'où venait le problème (mais comprendre pourquoi...).

    Dans mon ancien fichier, j'avais mis une listbox dans la feuille de calcule (et non dans un userform en VBA). Il semblerait que ça présence empêche le clipboard de fonctionner, même si quand je lançais la routine pour mettre du texte dans le presse-papier, je ne l'appelai pas du tout...
    Va comprendre, Charles !

    En tous les cas, ça fonctionne si je supprime cette listbox, c'est déjà ça.
    Mais j'aimerais bien comprendre comment la présence d'une listbox dans ma feuille de calcul peut avoir un impact sur une procédure alors même qu'à aucun moment je n'agis sur celle ni fait appel à elle...

    Merci en tous les cas pour les essais. C'est vraiment sympa !

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

Discussions similaires

  1. [Tkinter] Copier un texte dans le presse-papier
    Par fire.stone dans le forum Tkinter
    Réponses: 3
    Dernier message: 01/05/2018, 10h22
  2. Copie de texte dans le press papier
    Par intelcore dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/08/2007, 21h50
  3. Copier du texte dans le presse-papier ?
    Par Sylver--- dans le forum Langage
    Réponses: 6
    Dernier message: 03/08/2007, 16h34
  4. Copier automatiquement un texte dans le presse papier
    Par xenos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2007, 15h59
  5. Placer du texte dans le presse papier avec DOM
    Par Desraux dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/01/2005, 13h11

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