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 :

Condition : une partie du texte est en bleu


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Par défaut Condition : une partie du texte est en bleu
    Bonjour,

    Je souhaiterai mettre en place une condition sur la condition du texte d'une cellule.
    J'ai trouvé des réponses sur le forum mais lorsque la totalité du texte est d'une certaine couleur.
    Dans mon fichier ce n'est pas le cas, je peux avoir dans une celulle, une partie du texte en noir et une autre en bleu.

    Auriez-vous des idées afin de mettre en place une condition sur le code couleur du texte?

    Merci d'avance,

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour arnaud_92,

    Ce n'est surement pas la méthode la plus optimale mais voilà une proc qui te permet de balayer les caractères d'une cellule et d'en afficher la couleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
     
    Dim rg As Range, i As Long: Set rg = [A1]
     
    For i = 1 To Len(rg.Value)
        MsgBox rg.Characters(i, 1).Font.Color
    Next i
     
    End Sub

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut juste que tu récupère le bon numéro pour ta couleur bleu
    exemple avec du rouge, le test se fait sur la cellule active

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub RougeOrNotRouge()
     
    Dim i As Long
     
     
    For i = 1 To Len(ActiveCell)
        If ActiveCell.Characters(i, 1).Font.ColorIndex = 3 Then
            MsgBox ("Le caractère " & i & " est rouge")
            Exit Sub
        End If
    Next i
     
    End Sub


    EDIT : arf, antonysansh m'a doublé ... ça m'apprendra à chercher mes index de couleurs

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Par défaut
    Merci effectivement en modifiant légérement le code j'arrive à ce que je souhaite.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                For c = 1 To Len(Cells(j, 1))
                If Cells(j, 1).Characters(c, 1).Font.ColorIndex = 44 Then
                Cells(j, 1).Select
                Selection.Copy
                Worksheets("Feuil1").Select
                Cells(i, 1).Select
                ActiveSheet.Paste
                End If
                Next c
    Cependant j'ai une dernière question, dans le cas de couleurs qui sont dans des thèmes et pas par défaut, auriez-vous une idée de la manière d'entrer la condition sur la couleur.

    Merci

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il te suffit d'utiliser l'enregistreur de macro : tu enregistre l'action de colorier la police de caractère dans la couleur que tu souhaites détecter

    le code te fournira la "carte d'identité" de la couleur

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Par défaut
    C'est ce que j'ai effectivement fait Joe.levrai. Mais voici le code obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Selection.Font
            .ThemeColor = xlThemeColorAccent1
            .TintAndShade = 0.399975585192419
        End With
    Comment l'adapter dans ma condition?

    Merci

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

Discussions similaires

  1. Afficher une partie de texte qui est préalablement stockée dans la base
    Par sooprano dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/02/2010, 20h55
  2. Réponses: 1
    Dernier message: 29/03/2007, 14h46
  3. [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
  4. Selectionner par javascript une partie de texte
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2005, 16h53
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

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