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

Excel Discussion :

Insérer du texte dans une forme libre


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Insérer du texte dans une forme libre
    Bonjour à tous,
    Je n'ai pas trouvé ma réponse sur le forum, aussi je pose ma question.
    Je crée des formes libres (important, ce ne sont pas des formes pré-définies par Excel), et quand je veux insérer du texte au travers de VBA (avec Selection.Characters.Text = "texte") rien ne se passe, contrairement à des formes pré-définies par Excel.
    Même lorsque je veux insérer manuellement du texte dans ces formes libre, je n'y parviens pas puisque que la commande du clic droit "modifier le texte" n'apparait pas.

    Quelqu'un peut il me dire si je peux insérer du texte dans ces formes libres et si oui, quelle commande ou astuce VBA le permet ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 249
    Points
    34 249
    Par défaut
    Salut,

    peut-etre une piste avec :
    http://heureuxoli.developpez.com/off...re-dans-coeur/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ca dépend de quelle forme libre il s'agit.

    S'il s'agit d'une forme pouvant contenir du texte, la syntaxe pour changer ce texte est, par exemple pour une forme nommée "Test" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes("Test").TextFrame2.TextRange.Text = "Mon texte"
    Il faut avouer que ce n'est pas simple.

    Un truc qui m'étonne, c'est que Excel ne t'ai pas mis un message d'erreur pour la ligne de code que tu as indiqué, étant donné que Characters n'est pas membre de l'objet Shapes.
    Ca voudrait dire que ta sélection n'est pas un Shape.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonsoir, et merci pour vos contributions

    pour jpcheck, je n'ai pas réussi à identifier la piste
    pour menhir, c'est bien une shape, mais ma commande "characters" n'intervenait pas correctement (jeviens de m'en rendre compte) mais ne polluait pas non plus le code. J'ai essayé ton code, mais le texte ne s'affiche toujours pas dans ma forme libre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Points : 484
    Points
    484
    Par défaut
    Bonjour,

    Une solution est de passer par une cellule dans laquelle tu pourras renseigner ton texte.

    Par exemple, tu mets d'abord ton texte en A1, puis tu sélectionnes ta forme libre et tu appuies sur la touche F2. Tu tapes alors dans la barre de formule : =A1.
    Et hop, tu n'as plus alors qu'à ajuster le format, et le positionnement du texte.
    Une fois ton texte inséré dans ta forme, tu peux même supprimer ta formule (en refaisant les mêmes opérations décrites ci-dessus) et le texte restera dans ta forme. Ou alors tu laisses la formule, ce qui permet de modifier facilement le texte en modifiant le contenu de la cellule.

    Si tu as besoin de passer par du VBA, ça devrait être possible en utilisant l'enregistreur de macros.

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je l'ai testé ce code avant de le donné et il marche.
    A condition bien sûr de mettre la bonne désignation pour la forme et que ce soit bien une forme.

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Shapes("Test").TextFrame2.TextRange.Text = "Mon texte"
    MsgBox ActiveSheet.Shapes("Test").TextFrame2.TextRange.Text
    Si la fenêtre qui s'ouvre affiche "Mon texte", c'est que la commande que je t'ai donné marche et que ton problème est sans doute le format de texte (texte blanc, trop petit, mal placé, etc.) ou qu'elle s'applique à une autre forme que celle que tu souhaites.

    Citation Envoyé par francoislc Voir le message
    c'est bien une shape, mais ma commande "characters" n'intervenait pas correctement (je viens de m'en rendre compte) mais ne polluait pas non plus le code.
    Quand j'applique .Characters.Text = "texte" à une forme, ça provoque une erreur d'exécution, même en passant par un Select/Selection.
    Donc, ce que tu sélectionnes n'est pas une forme. Soit c'est autre chose, soit c'est une partie de la forme, par exemple le texte que contient la forme (puisque Characters est une méthode de TextFrame).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Effectivement en créant une forme libre, ce que vous proposez (Menhir et zenpbb) fonctionne.
    Seulement, et j'avais trop la tête dedans, cela ne fonctionne pas pour insérer du texte dans les formes que je crée. Le problème vient surement de la manière dont elles sont créées puisque j'utilise le tuto "Dessiner une carte de france avec les fonctions de dessins" par Arkham46 disponible sur le site et qui passe par des données SVG avant de convertir le constructeur en forme.
    voilà, voilà... merci

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par francoislc Voir le message
    Le problème vient surement de la manière dont elles sont créées puisque j'utilise le tuto "Dessiner une carte de france avec les fonctions de dessins" par Arkham46 disponible sur le site et qui passe par des données SVG avant de convertir le constructeur en forme.
    J'adore quand les informations sont données au compte-goutes...
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [Newbie]Ajout d'un texte dans une form
    Par devoluti0n dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/03/2009, 15h32
  2. rotation du texte dans une forme
    Par gullian dans le forum Word
    Réponses: 1
    Dernier message: 08/03/2009, 20h35
  3. [MySQL] insérer du texte dans une bdd
    Par esther60 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/06/2008, 17h05
  4. Réponses: 2
    Dernier message: 09/04/2007, 21h52
  5. Réponses: 1
    Dernier message: 25/10/2006, 22h03

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