VBA - Couleur de mot dans une chaine Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
n
nunos31
Membre habitué
Membre habitué
Messages : 119
Inscrit le : 25 juillet 2014
Version d'Excel : 2010

Message par nunos31 » 31 octobre 2017, 10:08

Bonjour,

Je voulais savoir si vous avez une idée de comment il est possible de modifier la couleur d'un mot qui est noyer dans une chaîne sous condition.

Soit, dans un trableau avec une colonne de "référence", une autre avec une autre colonne "Type"

Dans un autre feuille, j'ai sur plusieurs colonne, un regroupement des références du tableau un en une seule cellule. Je voulais savoir si suivant la type de la référence, il y avait une macro qui permet de chercher ce mot dans un chaine et de la changer de couleur suivant le "Type".

En vous remerciant d'avance pour vos lumières,Bruno
Color modification.xlsm
(11.8 Kio) Téléchargé 16 fois
Avatar du membre
bouben
Membre impliqué
Membre impliqué
Messages : 1'533
Appréciations reçues : 10
Inscrit le : 25 août 2014
Version d'Excel : 2010

Message par bouben » 31 octobre 2017, 11:40

Bonjour,

Ci-joint une proposition à tester.

Principe :
étape 1 : parcours de toutes les références pour constituer une collection indexée sur la référence
étape 2 : parcours de chaque "jour" (ligne 4)
- découpage de la cellule (ex C4) pour distinguer les références (séparateur : retour chariot : chr(10))
- récupère le type à partir de la référence (en utilisant la collection de l'étape 1)
- modifie la couleur selon le type
 oSh.Cells(4, iCol).Characters(Start:=iPosition, Length:=Len(sRef)).Font.Color = lCouleur
Code structuré et commenté en partie !

Si l'alimentation de l'onglet "RESULT" est déjà gérée dans une macro, le code peut être énormément simplifié (évite de devoir redécouper une chaîne qui a été construite partie par partie)

Bonne journée

Bouben
Color modification_v0.1.xlsm
(23.32 Kio) Téléchargé 46 fois
n
nunos31
Membre habitué
Membre habitué
Messages : 119
Inscrit le : 25 juillet 2014
Version d'Excel : 2010

Message par nunos31 » 31 octobre 2017, 14:26

Bonjour bouben ,

Ton script est nickel, juste dernière infos, il est possible de boucler sur plusieurs ligne ?

La boucle de la ligne c'est à partir de
For iRef = 0
?
Avatar du membre
bouben
Membre impliqué
Membre impliqué
Messages : 1'533
Appréciations reçues : 10
Inscrit le : 25 août 2014
Version d'Excel : 2010

Message par bouben » 1 novembre 2017, 10:07

Bonjour,

Pour cela, il faut ajouter une nouvelle boucle.
Cf nouvelle version en PJ, à tester.

Bouben
Color modification_v0.2.xlsm
(23.84 Kio) Téléchargé 21 fois
n
nunos31
Membre habitué
Membre habitué
Messages : 119
Inscrit le : 25 juillet 2014
Version d'Excel : 2010

Message par nunos31 » 2 novembre 2017, 09:22

Bonjour Bouben,

Merci, ça marche nickel sur l'exemple.

Quand j'essaye de l'adapter, j'ai un bug de type 13, qui dit Incompatibilité de type...

Pour tant j'ai rien de particulier, je me suis dit peut être du au fractionnement des cellule, mais ça marche bien sur l'exemple.
Du coup je vois vraiment pas en quoi celà peut bloquer, la ligne qui bloque en question est:
mcolRef.Add oSh.Range("I" & iLig).Value, oSh.Range("B" & iLig).Value
Merci de ton aide
Color modification.xlsm
(25.75 Kio) Téléchargé 8 fois
Avatar du membre
bouben
Membre impliqué
Membre impliqué
Messages : 1'533
Appréciations reçues : 10
Inscrit le : 25 août 2014
Version d'Excel : 2010

Message par bouben » 2 novembre 2017, 22:06

Bonsoir,

Le nouveau fichier a de nombreuses différences avec le premier fichier ::o
Cela implique pas mal de modif, évidemment :lol:

Ci-joint une nouvelle version, adaptée au nouveau fichier, à tester.
A noter qu'il manque certaines couleurs, donc à modifier dans le code VBA.

Cordialement

Bouben
Color modification_v0.3.xlsm
(28.23 Kio) Téléchargé 62 fois
n
nunos31
Membre habitué
Membre habitué
Messages : 119
Inscrit le : 25 juillet 2014
Version d'Excel : 2010

Message par nunos31 » 3 novembre 2017, 12:14

Bonjour Bouben,

Je viens de tester c'est parfait !!! :D :D :D

Merci beaucoup pour ton aide
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message