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 :

Modifier la police d'une cellule et l'afficher dans une TextBox [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Autodidact en VBA pour un ami indépendant
    Inscrit en
    Février 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidact en VBA pour un ami indépendant

    Informations forums :
    Inscription : Février 2019
    Messages : 29
    Par défaut Modifier la police d'une cellule et l'afficher dans une TextBox
    Bonjour,

    j'ai créé une macro qui me permet de modifier la police d'une cellule et de l'afficher dans une TextBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub CommandButton1_Click()
     
    Sheets("Feuil1").Activate
    Range("A1").Select
     
    Application.Dialogs(xlDialogFontProperties).Show
     
    With Me.TextBox1
            .Value = Sheets("Feuil1").Range("A1")
            .ForeColor = Sheets("Feuil1").Range("A1").Font.Color
            .FontName = Sheets("Feuil1").Range("A1").Font.Name
            .FontSize = Sheets("Feuil1").Range("A1").Font.Size
            .FontBold = Sheets("Feuil1").Range("A1").Font.Bold
            .FontUnderline = Sheets("Feuil1").Range("A1").Font.Underline
            .Font.Strikethrough = Sheets("Feuil1").Range("A1").Font.Strikethrough
        End With
     
    End Sub
    Le code marche parfaitement pour modifier la cellule mais quoi que je fasse ma Textbox est souligné.
    Je suppose que la ligne qui pose problème est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .FontUnderline = Sheets("Feuil1").Range("A1").Font.Underline
    Mais je trouve pas pourquoi.

    Si quelqu'un peut m'aider...

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Supprimez cette ligne puisque c'est elle qui fixe le soulignement

    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Autodidact en VBA pour un ami indépendant
    Inscrit en
    Février 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidact en VBA pour un ami indépendant

    Informations forums :
    Inscription : Février 2019
    Messages : 29
    Par défaut
    Ma macro me sert aussi à modifier un titre et donc je veux que le soulignement soit visible quand il est présent dans la cellule, supprimer la ligne ne résout pas mon problème.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Parce que la propriété Font.Underline d'un objet range peut prendre l'une des valeurs suivantes :
    xlUnderlineStyleNone
    xlUnderlineStyleSingle
    xlUnderlineStyleDouble
    xlUnderlineStyleSingleAccounting
    xlUnderlineStyleDoubleAccounting
    alors que la propriété Font.Underline d'une textbox n'est qu'une booléenne (True ou False).
    Et il se trouve que VBA/Excel traduit en valeur booléenne True toute valeur différente de 0

    La propriété Font.Underline d'une textbox ne pouvant enfin qu'être True ou False, le soulignement éventuel ne saurait avoir qu'un seul style et non tous ceux prévus pour un objet range.
    Il te faut donc traiter par exemple ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Textbox1.font.underline = range("A1").font.underline <> xlunderlinestylenone

  5. #5
    Membre averti
    Homme Profil pro
    Autodidact en VBA pour un ami indépendant
    Inscrit en
    Février 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidact en VBA pour un ami indépendant

    Informations forums :
    Inscription : Février 2019
    Messages : 29
    Par défaut
    Génial, merci beaucoup pour cette solution et les explications

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

Discussions similaires

  1. Modifier la police d'une zone de texte
    Par david-lt dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/11/2017, 15h21
  2. Comment modifier la police d'une chaine de caractère dans un tableau excel ?
    Par cle.mentito dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2015, 00h11
  3. [Lazarus] Dans un DBGrid, modifier la police d'une ligne en fonction d'un champ
    Par Jon Shannow dans le forum Lazarus
    Réponses: 5
    Dernier message: 20/11/2014, 15h28
  4. Réponses: 2
    Dernier message: 14/09/2007, 09h44
  5. Modifier la police d'une "hint"
    Par emem dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2004, 08h19

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