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 colorer un mot dans une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut vba colorer un mot dans une feuille
    Bonjour,

    Je souhaite colorer tous les mots présents dans un tableau par rapport à une cellule. Mon "porter" dans la cellule J2, je souhaite donc colorer tous les "porter" présent dans ma feuille. Le code si dessous fonctionne sauf pour les cellules qui renvoient le mot "porter" par rapport à une autre cellule. exemple: cellule j30 ='feuille 2'!a10 et renvoie le mot "porter" sauf que mon code ne trouve pas ce mot.
    Je ne sais pas si je suis clair, c'est mot premier post, je ne suis pas du tout familier avec les forums.

    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
    19
    20
    21
    Sub Colorer_mot_recherché()
     
        Dim b As String, r As Range, s As String, f As String
     
        b = Range("j2")
        Set r = Cells.Find(b, lookat:=xlPart)
        'lookat:=xlPart indique que la valeur trouvée peut être en partie égale à la valeur cherchée
        If Not r Is Nothing Then
            f = r.Address
            Do
                s = InStr(1, r.Value, b, vbTextCompare)
                'vbTextCompare permet  à la recherche de ne pas être sensible aux Maj/Minuscules
                While s > 0
                    r.Characters(Start:=s, Length:=Len(b)).Font.Color = vbRed
                    'colore en rouge le/les mot(s) recherché(s)
                    s = InStr(s + 1, r.Value, b)
                Wend
                Set r = Cells.FindNext(r)
            Loop Until r Is Nothing Or r.Address = f
        End If
    End Sub
    Par avance merci pour votre aide !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il n'est pas possible de sélectionner une partie d'un élément qui n'est dans la cellule que "virtuellement".
    Pas plus qu'il n'est possible de le faire "à la main".

    La seule solution serait de faire un "copier/coller valeur" sur la cellule mais je suppose que ce n'est pas ce que tu souhaites.

  3. #3
    Membre chevronné
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 321
    Par défaut
    Bonjour

    Ne peux-tu pas tout simplement utiliser une MFC

    Voir pièce jointe

    Slts
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    Les MFC ne peuvent qu'agir sur la cellule, j'aimerais agir sur le mot en lui même, par exemple si la cellule contient "porter une charge de 15kg" l'objectif est de colorer en rouge uniquement le mot "porter" en rouge.
    J'utilise également des MFC en combinant d'autres actions à ma plage.

    Justement les MFC fonctionnent dans le cas ou le texte est présent "virtuellement" car lié à une autre cellule qui contient ce mot. Je trouve donc étrange qu'une macro ne puisse pas faire la même chose.

    Merci pour vos réponses !

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par poplastat Voir le message
    Justement les MFC fonctionnent dans le cas ou le texte est présent "virtuellement" car lié à une autre cellule qui contient ce mot. Je trouve donc étrange qu'une macro ne puisse pas faire la même chose.
    Les macros, comme les MFC, peuvent agir sur l'intégralité de la cellule et une valeur issue d'une formule se conformera à la mise en forme de la cellule.

    Mais il n'est pas possible d'agir sur une partie d'un texte si le texte n'est pas présent dans la cellule, que se soit à la main, avec un MFC ou avec une macro.

    J'ai même essayé avec une formule alambiquée concaténant de plusieurs formules, la première affichant ce qui se trouve avant le texte chercher, la seconde le texte cherché et la troisième ce qui se trouve après le texte cherché.
    Mais il ne semble pas possible de modifier la couleur d'une partie d'une formule.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    En effet, je n'ai réussi à agir que sur une partie du texte (que le mot "porter") lorsque le texte était présent dans la cellule. Pour les cellules faisant référence à un texte issu d'une autre cellule j'ai réussi à obtenir dans le meilleur des cas la coloration de tout le texte en rouge.
    Je crois que je suis dans une impasse car je ne peux pas modifier la source des cellules.

    Merci pour votre temps

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2009, 23h19
  2. Colorer un mot dans une chaîne de caractéres
    Par eagle83 dans le forum Langage
    Réponses: 8
    Dernier message: 07/08/2009, 15h26
  3. comment en VBA mettre les mots dans une cellule en oblique
    Par antoine.dandois dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2007, 17h10
  4. [VBA-E]Copier données dans une feuille créée
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 09h09
  5. [VBA-E]tri/sélection dans une feuille
    Par philpommé dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/04/2006, 20h18

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