Changer la couleur de la police d’une forme par vba

xeltom Messages postés 7 Statut Membre -  
m@rina Messages postés 27566 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,
Je cherche à modifier la couleur de la police d’une forme présente dans un doc Word par VBA. J’ai tenté des choses avec textframe2 mais j’ai une erreur.
Activedocument.shapes(2).textframe2.textrange.characters.font.fill.forecolor.Rgb=rgb(255,255,255)

Quelqu’un à une idée?

Configuration: Macintosh / Safari 15.5

5 réponses

  1. T3chN0g3n Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   1 217
     
    Bonjour,

    J'ai effectué un petit test qui fonctionne pour moi:
        ActiveDocument.Shapes.Range(Array("Text Box 1")).Select 'Sélection de la forme et question
        Selection.Font.Color = vbRed 'Changement de la couleur du texte

    Ou avec le code couleur rgb:
    Selection.Font.Color = RGB(255,0,0)


    Cdlt.
    0
  2. xeltom Messages postés 7 Statut Membre
     
    Merci pour la réponse. Malheureusement cela ne fonctionne pas chez moi, le code est bien déroulé sans message d’erreur mais la couleur ne change pas…. Du coup je ne comprends ce qui est fait.
    Il faut préciser que ce n’est une textbox mais une forme et lorsque je déroule en mode pas à pas, la forme est bien sélectionnée mais la font ne change pas de couleur….
    0
    1. T3chN0g3n Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   1 217
       
      Pourriez vous nous fournir un fichier exemple ? ça sera plus simple ...
      (Vous pouvez par exemple l'uploader sur https://www.cjoint.com/ et nous partager le lien)
      0
  3. xeltom Messages postés 7 Statut Membre
     
    Voilà, j’espère que ca fonctionner
    https://www.cjoint.com/c/LFulJKhZUBh
    0
    1. T3chN0g3n Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   1 217
       
      Il y'a un truc qui lui plais pas de la manière dont vous ajoutez ces formes je pense ... J'en ai créer une moi même et ça fonctionne bien (je fait uniquement Insertion→Forme et Clique-droit→Ajouter du texte) Ont peut personnaliser et récupérer le nom avec le menu Sélection (ALT+F10) pour ne pas avoir de doublons.
      Voir votre fichier modifié : https://www.cjoint.com/c/LFumnZkSkBX
      0
  4. xeltom Messages postés 7 Statut Membre
     
    Yes j’ai trouvé, en fait Word ne gère pas le forme en positionnement libre de la même manière que les formes en ligne: Word distingue les ‘Shape’ des ‘InlineShape’…. Bon mon truc fonctionne maintenant mais c’est un peu lourd. En même temps je ne suis pas super doué en vba… mais ca fonctionne, du coup c’est bon.
    En tout ca merci beaucoup pour l’aide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. m@rina Messages postés 27566 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour

    A titre d'info :

    1) s'il s'agit d'un objet avec habillage :
    ActiveDocument.Shapes.Range("zone1").TextFrame.TextRange.Font.Color = vbGreen

    2) s'il s'agit d'un objet sans habillage :
    ActiveDocument.Shapes(1).TextFrame.TextRange.Font.TextColor = vbBlue

    A noter que dans le premier, j'ai mis le nom de la zone, et dans le second son numéro car la zone n'a pas de nom. Dans le premier le numéro fonctionne aussi, mais pour être sûr, il vaut mieux utiliser le nom.

    m@rina

    0