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 :

recherche liée à la couleur des mots


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suède

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut recherche liée à la couleur des mots
    Bonjour

    Dans une cellule d'excel où se trouve un texte dont certains mots sont en couleurs, est-il possible de sélectionner ces mots pour les remplacer par des données issues d'autres feuilles du même classeur ?

    Le texte peut avoir plusieurs mots d'une même couleur, par exemple :
    "ceci est un exemple de texte avec des mots à rechercher"

    À chaque couleur est associée une feuille (bleue = feuille1, rouge = feuille2, verte = feuille3, etc).

    Au résultat les mots en couleurs sont remplacés pas des informations issues d’autres feuilles et selon la couleur.

    J’arrive à sélectionner un mot de couleur lorsqu’il est seul dans une cellule mais je ne vois pas comment sélectionner plusieurs mots au sein d’un texte.

    Des suggestions ?
    Merci à vous

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Une idée en vrac d'algorithme :

    - tu met dans une variable tableau via un split sur le caractère espace (en espérant que tes phrases sont bien des phrases et que les mots sont toujours séparés par des espaces ?) pour avoir un mot pour chaque partie du tableau
    - tu regardes dans ce tableau la couleur de ton texte => tu place la valeur trouvée dans ta variable. Pour celle-ci soit :
    - tu met un champ texte si tu es sur qu'il n'y a qu'un mot de couleur
    - soit tu créé une variable tableau par couleur, et tu met ton mot dedans à chaque fois.

    Au final, tu auras alors une variable tableau par couleur, avec tous els mots que tu veux de la couleur

    En code, ça donnerai un truc de ce genre :

    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
    22
     
    Sub toto()
     
    Dim phrase() As String
    Dim TabBleu() As String
    Dim IBleu As Long
    Dim tabVert() As String
    Dim IVert As Long
    IBleu = 0
    IVert = 0
    'si ta phrase est en A1
    phrase = Split(Range("A1").Value, " ")
    For i = LBound(phrase) To UBound(phrase)
        If phrase(i).Font.Color.Font = blue Then    'à vérifier pour récupérer la valeur des caracteres
            TabBleu(IBleu) = phrase(i)
            IBleu = IBleu + 1
        ElseIf phrase(i).Font.Color.Font = green Then
            TabBleu(IVert) = phrase(i)
            IVert = IVert + 1
        End If
    Next i
    End Sub

    A toi de l'agrémenter avec ce que tu souhaites
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suède

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    Merci Illight
    certaines entités à chercher sont constituées de plusieurs mots avec des espaces

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Citation Envoyé par kabidan Voir le message
    Merci Illight
    certaines entités à chercher sont constituées de plusieurs mots avec des espaces
    C'est-à-dire ?

    Comme "cent vingt-sept" ? effectivement c'est "2 mots" en 1 mot..Mais vu que ta variable tableau va tout mettre à la suite, ça peut pas marcher quand même ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suède

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    je n'aurais peut-être pas dû utiliser le terme "mot" car si dans certains cas il s'agit bien d'un mot unique, dans d'autres il peut s'agir de 2 mots séparés d'un espace (par ex le prénom et nom d'une personne : Jean Dupont). Dans tous les cas le mot unique ou le groupe de mots constituent une seule entité qu'il faut chercher.

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    A ce moment, il faut que tu boucle sur chaque caractère de ton texte, et regarder la couleur, et dès que tu changes de couleur, tu change de cible.

    Un truc dans ce genre pour ta boucle :

    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
    Sub toto()
     
    Dim TabBleu() As String
    Dim IBleu As Long
    Dim tabVert() As String
    Dim IVert As Long
    IBleu = 0
    IVert = 0
    'si ta phrase est en A1
    For i = 1 To len(range("A1"))
        If mid(range("A1"),i,1).font.color = blue Then    'à vérifier pour récupérer la valeur des caracteres
            TabBleu(IBleu) = phrase(i)
            IBleu = IBleu + 1
        ElseIf phrase(i).Font.Color.Font = green Then
            TabBleu(IVert) = phrase(i)
            IVert = IVert + 1
        End If
    Next i
    End Sub
    Après, tes simples If tu peux les remplacer par des While, pour pouvoir avoir tout ton "mot". Un truc comme ça (attention je te donne les idées, j'ai aps testé le code) !

    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
     
    While i <= Len(Range("A1"))
        nb = 1
        While Mid(Range("A1"), i, 1).Font.Color = blue  'à vérifier pour récupérer la valeur des caracteres
            nb = nb + 1
            i = i + 1
        Wend
        TabBleu(IBleu) = Mid(Range("A1"), i, nb)
        IBleu = IBleu + 1
        While Mid(Range("A1"), i, 1).Font.Color = green  'à vérifier pour récupérer la valeur des caracteres
            nb = nb + 1
            i = i + 1
        Wend
        TabBleu(IVert) = Mid(Range("A1"), i, nb)
        Iverrt = IVert + 1
        i = i + 1
    Wend
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

Discussions similaires

  1. Macro recherche avec mise en couleur des mots clefs
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 13/07/2011, 22h42
  2. [XL-2003] Macro recherche avec mise en couleur des mots clefs
    Par empochez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2011, 18h52
  3. [XL-2003] problème de recherche de doublon et mise en couleur des mots
    Par lolodera dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/05/2011, 10h13
  4. Mysql et la recherche full-text (liste des mots à ignorer)
    Par pogo_nkt dans le forum Installation
    Réponses: 4
    Dernier message: 27/01/2011, 00h39
  5. [MySQL] Formulaire de recherche gérant les apostrophes des mots recherchés
    Par almoha dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/11/2010, 13h34

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