Explication tuto de ce site

bonjour a tous

j ai trouve ce tuto

https://www.excel-pratique.com/fr/astuces_vba/mise_en_forme_caracteres.php

mais je pense que j e copie mal le code vba

voici comment j ai fait

j ai ouvert un nouveau classeur et j ai ensuite creer un nouveau module ensuite

copier le code

mais cela ne me fait rien dans mon classeur excel lorsque je remplit mes cellules

merci de l aide

Bonjour,

Vous avez renseigné les cellules A1:A12 avec le texte de votre choix

puis exécuter la macro ?

bonjour

merci pour la reponse

j ai fini par trouver

en fait j ai pris ce modèle comme exemple afin de pouvoir colorier 4 chaines de caractères en couleur différentes dans la même cellule

mais de façon automatique

donc des que l utilisateur remplisse la cellule a1 et appuie sur enter que les 4 chaines de caractères soient automatiquement mis en couleur différentes

merci de l aide

pour l instant j essaye avec ceci

mais cela ne fonctionne pas et en plus je dois lancer la macro

Sub test()

    For ligne = 1 To 3

        'Contenu de la cellule
        contenu = Cells(ligne, 1)

        'Contenu divisé en un tableau de 3 parties
        tab_contenu = Split(contenu, " ")

        'Longueur de la partie 1
        longueur_partie_1 = Len(tab_contenu(0))

        'Longueur de la partie 2
        longueur_partie_2 = Len(tab_contenu(1))

        'Longueur de la partie 3
        longueur_partie_3 = Len(tab_contenu(2))

        'Partie 1 en orange
        Cells(ligne, 1).Characters(1, longueur_partie_1).Font.ColorIndex = 12

        'Partie2en bleu
        Cells(ligne, 1).Characters(1, longueur_partie_2).Font.ColorIndex = 5

        'Partie 3 en vert
        Cells(ligne, 1).Characters(1, longueur_partie_3).Font.ColorIndex = 7
    Next

End Sub

voila j ai trouve

Sub test()
Range("a1").Characters(1, 7).Font.ColorIndex = 10
Range("a1").Characters(9, 6).Font.ColorIndex = 1
Range("a1").Characters(16, 3).Font.ColorIndex = 5
Range("a1").Characters(20, 3).Font.ColorIndex = 2
End Sub

mais j ai deux soucis le premier est que je sais pas la longeur de mes chaines de caractères

donc dans la cellule a1

je peux très bien avoir

le camion est vert

comme

la grue de pascal

et je souhaiterais que la première chaîne de caractère soit en couleur 10

la 2 eme en couleur 1

la chaîne de caractère numéro 2 en couleur 5

et la dernière en couleur 2

merci de l aide

Bonjour flexi2202, le forum,

Len([A1]) retourne la longueur de la chaîne de caractères qui est dans la cellule A1.

Len() est l'équivalent VBA de la fonction Excel NBCAR()

dhany

Bonjour,

Voici un exemple,

ps/ le code est sur la page de la Feuil1

bonjour

super cela fonctionne un tout grand merci

a présent comment le réaliser sur des plages de cellule différentes par exemple de I5 a I20 puis de H5 a H20 de W1 a W20

merci de l aide

re,

a présent comment le réaliser sur des plages de cellule différentes par exemple de I5 a I20 puis de H5 a H20 de W1 a W20

veux-tu dire, si la sélection est de plus d'une cellule ?

merci pour la reponse

oui des plages de cellules disperse sur la feuille

re,

à tester,

Sub test(rng As Range)
Dim k As Integer, i As Integer
couleur = Array(10, 18, 55, 24)

For Each c In Selection
 mot = Split(c, " ")
 For i = LBound(mot) To UBound(mot)
   k = Application.Find(mot(i), c)
   Select Case i
    Case 0: c.Characters(1, Len(mot(i))).Font.ColorIndex = couleur(i)
    Case Else: c.Characters(k, Len(mot(i))).Font.ColorIndex = couleur(i)
   End Select
 Next i
Next c
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Call test(Target)
End Sub

Édit: correction de

For Each c In rng

pour

For Each c In Selection

bonsoir

j ai insérer la macro dans un nouveau module

mais je vois pas comment la lancer

je suis tres debutant en vba

merci de l aide

Bonsoir flexi2202,

comme il s'agit de la sub événementielle Worksheet_Change(), tu dois mettre le code VBA dans le module de la feuille concernée, pas dans un module standard tel que Module1 ; dans la fenêtre de ton projet VBA, c'est une des feuilles au-dessus de ThisWorkbook.

ensuite, pas besoin de lancer la macro : ça réagira automatiquement lors de la modif d'une cellule.

dhany

Bonjour flexi2202, dhany,

voici le fichier exemple,

bonjour sabV

merci pour la reponse

c est vraiment génial et surtout pour l explication

mais pourrais t on faire en sorte que le changement se fasse en a4 si je rentre une nouvelle phrase et que des que j appuie sur enter pour changer de cellule que le texte change tout seul de couleur

re,

désolé je ne comprend pas la question

re

dans le fichier je dois selectionner une plage de cellule afin que la mise en forme s execute

n y aurait il pas moyen que cela s exécute dans des plages de cellules déjà sélectionner

un exemple je dois écrire

que les plages par exemple de A1 a A120 soit prépare a l avance

pour que quand l utilisateur rentre le texte ce dernier se mette en forme directement sans aucune autre intervention de sa part

merci de l aide

re,

n y aurait il pas moyen que cela s exécute dans des plages de cellules déjà sélectionner

sans le contexte de l’événement je ne peux répondre ?

la solution que j'ai proposée est sur l’événement Worksheet_Change

re,

pour que quand l utilisateur rentre le texte ce dernier se mette en forme directement sans aucune autre intervention de sa part

quand l'utilisateur inscrit le texte (la cellule est en mode Édition) cela ne déclenche aucun événement,

c'est seulement lors de l'appui sur la touche "Enter" que l'événement arrive.

les propriétés de l'objet Range ne sont pas les même de ceux d'un Control ActiveX

re

merci pour la reponse

oui voila c est que quand il appuie sur enter que cela devrait changer de couleur

je suis d accord avec toi

sauf que dans ce cas je dois d abord sélectionner la plage de cellule

je constate aussi que cela ne fonctionne qu avec la seule plage A1 a A3

comment le faire executer sur des autres plages ??

bonjour

voila je reviens avec le sujet pour changer les couleurs d un mot d une meme cellule

y a t il une solution pour ne pas devoir sélectionner et appuyer sur enter

Rechercher des sujets similaires à "explication tuto site"