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 :

Extraire le contenu d'une zone de texte [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Points : 59
    Points
    59
    Par défaut Extraire le contenu d'une zone de texte
    Bonjour,

    J'aimerais créé une macro qui me permette de copie le contenu d'une zone de texte dans une cellule. La macro sera affecté à la zone de texte et le faite de clicquer sur la zone de texte copierais le contenu dans une cellule (ex:"A1").

    Attention : j'ai plusieurs zone de texte et je veux que la macro copie le contenu de la zone de texte sur laquel je clicque.

    Merci pour vos réponses.

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 224
    Points : 443
    Points
    443
    Par défaut
    Bonjour gigalia,


    Voici un essai avec cette macro à affecter aux zones de texte concernées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub RecupTexteShape()
    Dim laShapeActive As Shape
        On Error Resume Next
         Set laShapeActive = ActiveSheet.Shapes(Application.Caller)
        On Error GoTo 0
        If Not laShapeActive Is Nothing Then ActiveSheet.Range("A1").Value = laShapeActive.TextFrame2.TextRange.Text
    End Sub
    Bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup de cette réponse elle est parfaite. Vous êtes des pros....

    Bonjour,

    La solution marche très bien en Excel 2010. Mais lorsque je passe sur la version 2003, la solution proposé ne marche plus.

    Aurais-tu un code adapté à la version 2003 de excel????

    Merci.

  4. #4
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Ce n'est certainement pas la meilleure solution, ni la plus "esthétique", mais elle fonctionne avec Excel 2003. Adaptation du code de mromain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub RecupTexteShape()
    Dim laShapeActive As Shape
        On Error Resume Next
         Set laShapeActive = ActiveSheet.Shapes(Application.Caller)
        On Error GoTo 0
        If Not laShapeActive Is Nothing Then ActiveSheet.Range("A1").Value = Right(laShapeActive.AlternativeText, Len(laShapeActive.AlternativeText) - 15)
    End Sub
    En fait, AlternativeText seul nous done : "Zone de Texte : contenu de la Shape", il nous faut donc extraire la chaine qui nous convient. D'où le Right(laShapeActive.AlternativeText, Len(laShapeActive.AlternativeText) - 15)
    15 étant le nombre de caractères de "Zone de Texte : "

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Merci la réponse marche en version 2003.

  6. #6
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour à tous,
    Je reviens sur ce sujet "résolu" pour apporter une modification aux divers codes de cette discussion. La bonne syntaxe pour récupérer le contenu d'une Shape, ici la "zone de texte" est (en gras dans le code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub RecupTexteShape()
    Dim laShapeActive As Shape
        On Error Resume Next
        Set laShapeActive = ActiveSheet.Shapes(Application.Caller)
        On Error GoTo 0
        laShapeActive.Select
        
        If Not laShapeActive Is Nothing Then
            With Selection
                ActiveSheet.Range("A1").Value = .Characters.Text        
            End With
        End If
    End Sub
    Cela pourra toujours être utile à un prochain visiteur. Tout comme ce lien de Fring...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2006, 18h48
  2. Réponses: 4
    Dernier message: 24/05/2006, 08h44
  3. [HTML] Centrer le contenu d'une zone de texte
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/03/2006, 00h34
  4. [HTML] Centrer le contenu d'une zone de texte
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 15/03/2006, 17h10
  5. effacer le contenu d'une zone de texte
    Par patbeautifulday1 dans le forum Access
    Réponses: 1
    Dernier message: 01/03/2006, 12h34

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