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 :

Concatenation et mise en forme [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Par défaut Concatenation et mise en forme
    Bonjour,
    J'ai des cellules "concatenés" et j'aimerais mettre une partie du texte en gras.
    J'ai lu quelques discussions sur le sujet, j'ai fait une macro en appliquant la méthode : .characters(start,lenght).font.bold=true mais cette méthode ne marche que pour les cellules contenant du texte non "concatené".

    Si quelqu'un a une idée, merci d'avance.

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir mayga,

    En cherchant assez rapidement, je suis tombé sur un post qui pourrait convenir en terme de réponse : Ancien Post

    Bertrand

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Ca fonctionne tout aussi bien avec une plage de cellules concaténées mais il faut préciser l'adresse de la première cellule et pas de toute la plage.
    Par exemple pour une concaténation des cellules B2 à F5 cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim DebTxt As Integer, LongTxt As Integer
     
    With Range("B2")
        LongTxt = Len("texte")
        DebTxt = InStr(1, .Value, "texte")
        .Characters(DebTxt, LongTxt).Font.Bold = True
    End With
     
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Par défaut
    Merci pour les réponses, mais ça ne marche pas !
    Je pense que je me suis mal exprimé.
    Il ne s'agit pas de cellules fusionnées, dans une cellule j'ai une formule par exemple : "=Concatener(A1;A2)" ou "=A1 & A2" et je cherche à mettre la partie qui correspond à A2 en gras.

  5. #5
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir mayga,

    La solution du VBA comme le propose fring me parait la plus réaliste.
    A ma connaissance, il n'existe pas de formule sous Excel seul, sans VBA, qui puisse faire l'équivalent.

    Bertrand

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Effectivement ça change tout, supprime ta formule de concaténation et insère ce code dans le module de la feuille en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim DebTxt As Integer, LongTxt As Integer
     
    If Not Application.Intersect(Target, Range("A1:A2")) Is Nothing Then
        With Range("C1") '<-- adapter la cellule contenant la concaténation
            LongTxt = Len(Range("A2"))
            .Value = Range("A1") & " " & Range("A2")
            DebTxt = InStr(1, .Value, Range("A2"))
            .Characters(DebTxt, LongTxt).Font.Bold = True
        End With
    End If
     
    End Sub

  7. #7
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Beau code, bravo fring

    J'avais trouvé ce post mais ton code me parait plus efficace : POST



    Bertrand

  8. #8
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autre
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Par défaut
    Merci, comme ça tout fonctionne bien!
    Juste une petite chose, je propose de rajouter après with Range("c1") :
    .font.bold = false pour réinitialiser la cellule de destination car au bout de quelques essais celle-ci restait en gras.

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

Discussions similaires

  1. Mise en forme et concatener
    Par steph2525 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/07/2008, 07h26
  2. [CR 9] Mise en forme non affichée when null
    Par Yorglaa dans le forum Formules
    Réponses: 2
    Dernier message: 28/06/2004, 17h27
  3. mise en forme rapide d'applets
    Par appletj dans le forum Applets
    Réponses: 11
    Dernier message: 03/06/2004, 13h28
  4. Mise en forme HTML
    Par Regis.C dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 25/04/2004, 11h55
  5. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 15h16

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