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 :

Fonction pour mettre en gras du texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut Fonction pour mettre en gras du texte
    Bonjour à tous,

    Je cherche à créer une fonction permettant de mettre en gras une partie de texte dans une formule.

    Par exemple, si j'ai dans une cellule : ="j'aime les frites"
    Faire quelque chose comme : ="j'aime les "&Gras("frites")
    Qui me donnerais le texte : j'aime les frites

    Voilà ce que j'ai commencé mais ça marche pas du tout... une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Gras(txt As String) As String
     
    txt.Font.FontStyle = "Gras"
    Gras = txt
     
    End Function
    Merci de votre aide !

  2. #2
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    pour mettre en gras la chaine de caractere contenue dans txt tu fait ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    txt.Font.Bold=True
    Pas fait le test mais je pense c'est ca :p


    Chipss

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Si txt est un String, il n'a pas de propriété Font.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Merci pour vos réponses.
    Mais du coup, ça ne fonctionne toujours pas... Auriez vous une idée pour résoudre le problème ?

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    en utilisant l'enregistreur de macro, on arrive a trouver une syntaxe plus simple.
    Reste a savoir si tu souhaites faire une petite usine a gaz ou pas

    En VBA on arrivera a faire une fonction qui va gerer ca.
    Mais quelle est l'idee d'origine ?
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Merci pour ta réponse jpcheck,

    Oui, en effet, l'enregistreur de macro donne une solution, mais celle-ci ne marche pas pour moi car la longueur de mes textes est variable (il y a des données qui s'affiche dedans, ex : =D3&" euros et ceci est une condition de "&A5 )
    Du coup, ça deviens long de recalculer la position des caractères que je souhaite mettre en gras. L'intéret de la fonction que je voulais créer est de pouvoir l'insérer où je veux, très simplement.

    Je ne sais pas si je suis clair...

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Je comprends bien. La solution que tu cherches a mettre en place est un peu usine a gaz demon point de vue.

    Attention, plein d'etapes pour expliquer ce a quoi tu t'attaques
    - Pour trouver le numero du caractere dans une chaine j'utilise Instr()
    - pour changer la font on utilisera une partie du code propose par Chipss
    - il faut utiliser la detection de la fonction "Gras()" et isoler le texte entre les parentheses
    - on applique a ce texte le changement de font.
    - on supprime le nom de la fonction

    Le tout en supprimant la formule en elle meme et en y mettant le resultat final

    Mais la encore on doit savoir si les modifications doivent se faire dans un but d'affichage externe, a la volee ou en fin de process.
    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 :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

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

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    OK, merci pour ton aide...

    En cherchant un peu, je me suis effectivement rendu compte que ça allait être compliqué !
    Du coût, j'ai fait plus simple, je recherche les caractères (toujours présents dans ma phrase) qui entoure l'endroit que je veux mettre en gras (variable) et je mets en gras ce qui se trouve entre les deux. c'est moins puissant mais tellement plus simple !

    Pour ceux qui veulent, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim DebTxt, FinTxt As Integer
     
    DebTxt = InStr(1, Sheets("LOI format texte").Range("B60"), "élève à") + 7
    FinTxt = InStr(1, Sheets("LOI format texte").Range("B60"), "an,") + 2
     
    Sheets("LOI format texte").Range("B60").Characters(Start:=DebTxt, Length:=FinTxt - DebTxt).Font.Bold = True
    Merci encore à tous pour votre aide!

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

Discussions similaires

  1. Mettre en gras du texte dans un MSGBOX
    Par gantec dans le forum Général VBA
    Réponses: 20
    Dernier message: 21/09/2013, 20h52
  2. Récuperer lien <a href> pour mettre dans un champ texte
    Par nico26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/02/2007, 15h19
  3. Mettre en gras un texte placé après un signet word
    Par dederfred dans le forum Delphi
    Réponses: 2
    Dernier message: 29/11/2006, 14h31
  4. Couleur mettre en gras le text d un JTextArea
    Par jean_bobi dans le forum Composants
    Réponses: 4
    Dernier message: 01/11/2005, 12h28
  5. Réponses: 12
    Dernier message: 22/02/2005, 17h45

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