explication tuto de ce site

Forum pour toutes vos questions à propos d'Excel (avec ou sans macros) ...
flexi2202
Membre habitué
Membre habitué
Messages : 97
Inscrit le : 16 août 2010
Version d'Excel : 2007 fr

Message par flexi2202 » 15 novembre 2018, 00:03

bonjour a tous
j ai trouve ce tuto
https://www.excel-pratique.com/fr/astuc ... cteres.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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3050
Appréciations reçues : 95
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par i20100 » 15 novembre 2018, 00:26

Bonjour,

Vous avez renseigné les cellules A1:A12 avec le texte de votre choix
puis exécuter la macro ?
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
flexi2202
Membre habitué
Membre habitué
Messages : 97
Inscrit le : 16 août 2010
Version d'Excel : 2007 fr

Message par flexi2202 » 15 novembre 2018, 00:47

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

Code : Tout sélectionner

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
flexi2202
Membre habitué
Membre habitué
Messages : 97
Inscrit le : 16 août 2010
Version d'Excel : 2007 fr

Message par flexi2202 » 15 novembre 2018, 01:13

voila j ai trouve

Code : Tout sélectionner

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
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 5850
Appréciations reçues : 567
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 15 novembre 2018, 01:28

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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3050
Appréciations reçues : 95
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par i20100 » 15 novembre 2018, 02:22

Bonjour,

Voici un exemple,
flexi2202 - couleur Characters texte.xlsm
(14.38 Kio) Téléchargé 6 fois
ps/ le code est sur la page de la Feuil1
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
flexi2202
Membre habitué
Membre habitué
Messages : 97
Inscrit le : 16 août 2010
Version d'Excel : 2007 fr

Message par flexi2202 » 15 novembre 2018, 08:53

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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3050
Appréciations reçues : 95
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par i20100 » 15 novembre 2018, 16:55

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 ?
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
flexi2202
Membre habitué
Membre habitué
Messages : 97
Inscrit le : 16 août 2010
Version d'Excel : 2007 fr

Message par flexi2202 » 15 novembre 2018, 19:57

merci pour la reponse
oui des plages de cellules disperse sur la feuille
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3050
Appréciations reçues : 95
Inscrit le : 16 mars 2017
Version d'Excel : 2010 FR

Message par i20100 » 15 novembre 2018, 21:11

re,

à tester,

Code : Tout sélectionner

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

Code : Tout sélectionner

For Each c In rng
pour

Code : Tout sélectionner

For Each c In Selection
Modifié en dernier par i20100 le 16 novembre 2018, 03:12, modifié 1 fois.
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message