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 :

Coller une variable dans un "shape" [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 54
    Points : 40
    Points
    40
    Par défaut Coller une variable dans un "shape"
    Bonjour
    J'essaier de coller le contenu du presse-papier dans un "Shape Text"
    Je récupère le presse papier dans une variable et qund je veux coller cette variable dans le shape, rien ne se passe.
    Si je colle du texte, cela fonctionne ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub CopyText()
     
    Set MaDonnee = New DataObject
     
    MaDonnee.GetFromClipboard
    Texte = MaDonnee.GetText(1)
     
    ActiveSheet.Shapes("Text Box 1").Select
    Shapes("Text Box 1").TextFrame.Characters.Text = ""
    Shapes("Text Box 1").TextFrame.Characters.Text = Texte
    Range("a1").Select
     
    End Sub
    mais cela fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Shapes("Text Box 1").TextFrame.Characters.Text = "dfjgdfkl"
    merci d'avance

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    vérifie la vaeur de texte, en t'arretant sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Texte = MaDonnee.GetText(1)

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Il y a une erreur de syntaxe dans l'utilisation de la Shape.
    Si tu veux passer par la sélection de cette shape, la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CopyText()
     
    Set MaDonnee = New DataObject
     
    MaDonnee.GetFromClipboard
    Texte = MaDonnee.GetText(1)
     
    ActiveSheet.Shapes("Text Box 1").Select
    Selection.Characters.Text = ""
    Selection.Characters.Text = Texte
    Range("a1").Select
     
    End Sub
    Il est également possible d'éviter cette sélection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CopyText()
     
    Set MaDonnee = New DataObject
     
    MaDonnee.GetFromClipboard
    Texte = MaDonnee.GetText(1)
     
    With ActiveSheet.Shapes("Text Box 1")
        .TextFrame.Characters.Text = ""
        .TextFrame.Characters.Text = Texte
    End With
     
    End Sub

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'ai peut-être tort mais ceci m'étonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.Shapes("Text Box 1")
    ça ne serait pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.Shapes("TextBox1")

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Il ne s'agit pas d'un TextBox issu de la boîte à outils "Contrôles" mais d'une zone de texte, issue du menu "Dessin", nommée "Text Box 1"

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 54
    Points : 40
    Points
    40
    Par défaut
    Bonjour à Tous

    J'ai modifié le code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub CopyText()
     
    Set MaDonnee = New DataObject
     
    MaDonnee.GetFromClipboard
    Texte = MaDonnee.GetText(1)
    Shapes("Text Box 1").Select
    With ActiveSheet.Shapes("Text Box 1")
        .TextFrame.Characters.Text = ""
        .TextFrame.Characters.Text = Texte
    End With
     
    End Sub

    Le shapes s'appelle bien "Text Box 1"
    Quand je fais la macro, j'ai bien "Texte" qui a pris la valeur voulue.

    Mais le Frame reste vide, la valeur ne se colle pas à l'intérieur.

    je ne comprend pas

  7. #7
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    si je fait comme ceci, cela fonctionne très bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CopyText()
    Dim MaDonnee As DataObject
    Dim texte As String
     
    Set MaDonnee = New DataObject
    MaDonnee.GetFromClipboard
    texte = MaDonnee.GetText(1)
     
    With ActiveSheet.Shapes("Text Box 1")
        .TextFrame.Characters.Text = ""
        .TextFrame.Characters.Text = texte
    End With
     
    End Sub
    maintenant question bete :
    les couleurs de texte ne se confondent pas avec l'arrière plan du shape ???

  8. #8
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 54
    Points : 40
    Points
    40
    Par défaut
    Hello en fait cela fonctionne très bien....

    sauf s'il y a trop de ligne.
    Je copie ces donnée depuis un "Host" et il semblerait qu'il y a un problème avec les saut des lignes ou la quantité de texte...

    Merci à Vous pour votre aide

    Je reviendrais si je ne trouve pas ou se situe le problème....

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

Discussions similaires

  1. VBA coller une variable dans un fichier texte
    Par nina_noss dans le forum Excel
    Réponses: 7
    Dernier message: 27/05/2013, 18h53
  2. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40
  3. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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