Couleur du texte dans une listview
Résolu
Louloude74
Messages postés
62
Date d'inscription
Statut
Membre
Dernière intervention
-
Louloude74 Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
Louloude74 Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je bute sur ce bout de code.
J'effectue une recherche dans une feuille depuis un UseFfrom. Le texte cherché est écrit dans une TextBox. Quand la recherche correspond, la ListView s'incrémente des données de la ligne de la feuille.
J'aimerais que lors de la recherche, le texte qui correspond à la recherche change de couleur dans la ListeView.
Avec ce code, le texte change bien de couleur mais pas sur la bonne colonne.
Soit le texte en son entier change de couleur, soit seule la partie du texte du TextBox change de couleur.
Par avance merci pour votre aide.
Je bute sur ce bout de code.
J'effectue une recherche dans une feuille depuis un UseFfrom. Le texte cherché est écrit dans une TextBox. Quand la recherche correspond, la ListView s'incrémente des données de la ligne de la feuille.
J'aimerais que lors de la recherche, le texte qui correspond à la recherche change de couleur dans la ListeView.
Avec ce code, le texte change bien de couleur mais pas sur la bonne colonne.
Soit le texte en son entier change de couleur, soit seule la partie du texte du TextBox change de couleur.
Par avance merci pour votre aide.
Sub ALimenterListView1() Dim f As Worksheet Dim Lr As Long Dim Ligne As Integer Dim awb As String Dim fa As String Dim c As Variant Dim cl As Integer awb = ActiveWorkbook.Name fa = ActiveSheet.Name Set f = ThisWorkbook.Sheets("Feuil1") With Me.ListView1 .ListItems.Clear Lr = Dlg(awb, fa, 1, Cells(1, 1).Value) If Lr = 2 Then Exit Sub Ligne = 1 For Each c In Plage(awb, fa, 1) If InStr(1, c, Usf.TextBox1.Text, vbTextCompare) > 0 Then cl = c.Column .ListItems.Add , , f.Cells(c.Row, 1) For i = 2 To Dcl(awb, fa, 1) With .ListItems(Ligne) .ListSubItems.Add , , f.Cells(c.Row, i) End With Next i .ListItems(Ligne).ListSubItems(cl).ForeColor = vbGreen Ligne = Ligne + 1 End If i = 2 Next c End With Set f = Nothing End Sub
Configuration: Windows / Chrome 92.0.4515.159
A voir également:
- Couleur du texte dans une listview
- Excel cellule couleur si condition texte - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Transcription audio en texte word gratuit - Guide
- Somme si couleur - Guide
- Word couleur de fond texte - Guide
7 réponses
Bonjour,
Avec ce code, le texte change bien de couleur mais pas sur la bonne colonne.
Certes, certes, avec un fichier exemple serait plus facile.
Votre code change bien la couleur, mais perso, je ne sais pas laquelle vous voulez.
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage termine arrete
https://mon-partage.fr/
ou
www.transfernow.net 'fichier jusqu'a 4G
Avec ce code, le texte change bien de couleur mais pas sur la bonne colonne.
Certes, certes, avec un fichier exemple serait plus facile.
Votre code change bien la couleur, mais perso, je ne sais pas laquelle vous voulez.
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage termine arrete
https://mon-partage.fr/
ou
www.transfernow.net 'fichier jusqu'a 4G
Bonjour,
Voici le lien : https://www.cjoint.com/c/KIcfWicsce5
Pour tester, faire une recherche avec AM.
Encore merci.
Bonne journée.
Voici le lien : https://www.cjoint.com/c/KIcfWicsce5
Pour tester, faire une recherche avec AM.
Encore merci.
Bonne journée.
Bonjour,
Désolé pour mon temps de réponse.
Y a pas d'lezard.
Je regarde la chose
Par contre, je ne sais pas si dans colonne listview possible de colorier une partie de texte.
Je vais chercher
Désolé pour mon temps de réponse.
Y a pas d'lezard.
Je regarde la chose
Par contre, je ne sais pas si dans colonne listview possible de colorier une partie de texte.
Je vais chercher
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
En attendant si possible couleur partiel texte: https://www.cjoint.com/c/KIejryANpFf
J'ai fait petite modif pour recherche en temps reel sans bouton
Question:
votre recherche se fait sur toutes les colonnes, normal ou pas?
En attendant si possible couleur partiel texte: https://www.cjoint.com/c/KIejryANpFf
J'ai fait petite modif pour recherche en temps reel sans bouton
Question:
votre recherche se fait sur toutes les colonnes, normal ou pas?
Bonjour,
Oui c'est normal et très bonne idée la recherche au fur et mesure de la saisie.
Le but de changer la couleur du texte trouvé est de rapidement visualiser où le texte recherché correspond.
C'est plus pratique quand il y une dizaine, voir plus, de colonnes et des milliers de lignes.
Encore merci.
Oui c'est normal et très bonne idée la recherche au fur et mesure de la saisie.
Le but de changer la couleur du texte trouvé est de rapidement visualiser où le texte recherché correspond.
C'est plus pratique quand il y une dizaine, voir plus, de colonnes et des milliers de lignes.
Encore merci.
Bonjour,
Je partage avec vous une proposition de solution à mon problème. Elle pourra, je l'espère servir à d'autres.
https://www.cjoint.com/c/KIilS7bzIV5
Malheureusement, je n'ai pas réussi à mettre en couleur partiellement le texte trouvé dans la ListeView. Si le texte cherché est dans le texte de la cellule de ListView alors c'est le texte en son entier de la cellule qui change de couleur.
Encore merci pour l'aide apportée.
Bonne journée et mon continuation.
Je partage avec vous une proposition de solution à mon problème. Elle pourra, je l'espère servir à d'autres.
https://www.cjoint.com/c/KIilS7bzIV5
Sub AlimenterListe() Dim i As Long Dim cpt As Long cpt = 0 With userform1.ListView1 .ListItems.Clear With .ColumnHeaders .Clear .Add , , "Nom", 60 .Add , , "Prénom", 60, 2 .Add , , "Age", 60, 2 End With .View = lvwReport .FullRowSelect = False .Gridlines = True For lg = 2 To Sheet1.Range("A65536").End(xlUp).Row For cl = 1 To 3 If InStr(1, Cells(lg, cl), userform1.TextBox1.Text, vbTextCompare) > 0 Then .ListItems.Add , , Sheet1.Cells(lg, 1) .ListItems(.ListItems.Count).ListSubItems.Add , , Sheet1.Cells(lg, 2) .ListItems(.ListItems.Count).ListSubItems.Add , , Sheet1.Cells(lg, 3) GoTo suite End If Next cl suite: Next lg bcl = 0 For lg = 1 To .ListItems.Count For cl = 1 To .ColumnHeaders.Count If cl = 1 And InStr(1, .ListItems(lg).Text, userform1.TextBox1.Text, vbTextCompare) > 0 Then .ListItems(lg).ForeColor = vbGreen cpt = cpt + 1 ElseIf cl > 1 And bcl = 0 Then cl = cl - 1 bcl = 1 If InStr(1, .ListItems(lg).ListSubItems(cl).Text, userform1.TextBox1.Text, vbTextCompare) > 0 Then .ListItems(lg).ListSubItems(cl).ForeColor = vbGreen cpt = cpt + 1 End If cl = cl + 1 ElseIf cl > 1 And bcl = 1 Then cl = cl - 1 If InStr(1, .ListItems(lg).ListSubItems(cl).Text, userform1.TextBox1.Text, vbTextCompare) > 0 Then .ListItems(lg).ListSubItems(cl).ForeColor = vbGreen cpt = cpt + 1 End If cl = cl + 1 End If Next cl Next lg End With MsgBox "Nombre d'occurence trouvée : " & cpt End Sub
Malheureusement, je n'ai pas réussi à mettre en couleur partiellement le texte trouvé dans la ListeView. Si le texte cherché est dans le texte de la cellule de ListView alors c'est le texte en son entier de la cellule qui change de couleur.
Encore merci pour l'aide apportée.
Bonne journée et mon continuation.
Désolé pour mon temps de réponse. Le temps de refaire mon fichier exemple.
J'espère que le résultat souhaité sera plus parlant en utilisant ce fichier.
https://www.cjoint.com/c/KIdtax73NK5
Faites une recherche en utilisant le bouton "Afficher dans feuille" de l'UserForm.
J'aimerais avoir le même résultat mais, dans la ListView.
Encore merci pour tout.