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 :

[VBA-E] Mettre en gras une partie du texte d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 22
    Points : 16
    Points
    16
    Par défaut [VBA-E] Mettre en gras une partie du texte d'une cellule
    Bonjour,

    J'ai un petit soucis pour la mise en forme de ma feuille.
    J'ai une variable texte que je met dans une cellule, j'aimerais mettre une partie seulement de ce texte en gras.

    je ne vois vraiment pas comment faire
    vous avez une idée ?


    merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    un mission pour enregistreur de macro

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2002
    Messages : 27
    Points : 28
    Points
    28
    Par défaut
    - Après avoir copié ta variable dans la cellule, tu peux utiliser la fonction ci-dessous pour mettre en gras la partie voulu du texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Feuil1.Cells(6, 4).Characters(Start:=2, Length:=3).Font.FontStyle = "Gras"
    la méthode Characters() est équivalente du Mid(taChaine,debutLecture,NbreDeCaractère)

    Pour te l'écrire, j'ai utilisé l'enregistreur macro (comme dit bbil) écrémé de tout les superflus (.select, .activecell ...)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Ah oui, pas bête en effet ^^
    j'y avait pas du tout pensé :s

    Alors en fait, j'ai fait une macro avec l'editeur et j'ai modifié le code qu'il ma donné pour l'integrer a mon "projet".
    ce qui donne:
    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
     
    Function mise_en_gras(ligne As Integer, collone As String)
        Cells(ligne, collone).Select
        var = Split(Cells(ligne, collone), "@@")
        Cells(ligne, collone).Value = var(0) & var(1)
        debut = Len(var(0))
        fin = Len(Cells(ligne, collone))
        With ActiveCell.Characters(Start:=0, Length:=fin).Font
            .Name = "Arial"
            .FontStyle = "Gras"
        End With
        With ActiveCell.Characters(Start:=debut, Length:=fin).Font
            .Name = "Arial"
            .FontStyle = "Normal"
        End With
    End Function
    La fonction prend pour argument le numéro de ligne et la collone de la case à mettre en gras.
    le texte dans la case est composé de cette maniére:
    " blablablabla a mettre en gras @@ blablabla normal "
    Ma fonction va mettre en gras la premiére partie du texte et laisser la seconde comme elle est. ( en plus d'enlever les deux @ qui trainent...)

    bref, merci Bbil et okitotete, merci l'editeur de macro

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Citation Envoyé par bbil
    un mission pour enregistreur de macro
    lol

    Mais c'est tellement vrai !! il sert bien dans ces cas là ce petit enregistreur

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2002
    Messages : 27
    Points : 28
    Points
    28
    Par défaut
    Juste en complément du sujet

    Oui, les macros sont très très utiles; il faut toutefois bien assimiler le code généré et l'adapter à son cas :
    exple d'attention à prêter aux macros
    - l'utilisation de Select (à éviter car trop sensible aux manipulation de l'utilisateur)
    - les performances : dans ton cas la mise en forme en "normal" est une étape non nécessaire (car par défaut à moins d'un formatage différent de ta feuille)
    - ...

    la fonction pourrait aussi, éventuellement, s'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function mise_en_gras(ligne As Integer, collone As String)
     
        Var = Split(Cells(ligne, collone), "@@")
        Cells(ligne, collone).Value = Var(0) & Var(1)
        Cells(ligne, collone).Characters(Start:=Len(Var(0)), Length:=Len(Cells(ligne, collone))).Font.FontStyle = "Gras"
     
    End Function

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Ouhlaa oui, en effet, sa change !
    j'était trop content que le code fonctionne que j'ai pas pensé a l'optimiser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function mise_en_gras(ligne As Integer, collone As String)
      var = Split(Cells(ligne, collone), "@@")
      Cells(ligne, collone).Value = var(0) & var(1)
      Cells(ligne, collone).Characters(Start:=0, Length:=Len(var(0))).Font.FontStyle = "Gras"
    End Function
    j'ai rechangé les limites pour ne mettre en gras que le debut ( var(0) ) du message

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2002
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2002
    Messages : 27
    Points : 28
    Points
    28
    Par défaut
    Ci-dessous un lien vers le tutoriel de J-M Rabilloud (pdf à télécharger) très intéressant très :
    http://vb.developpez.com/cours/#app_office

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

Discussions similaires

  1. [XL-2007] [VBA] Mettre en gras certaines parties du texte
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/11/2009, 13h01
  2. Réponses: 4
    Dernier message: 20/06/2008, 15h19
  3. Réponses: 8
    Dernier message: 04/05/2007, 11h41
  4. Réponses: 5
    Dernier message: 02/01/2007, 15h19
  5. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15

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