Couleur du texte dans une listview
Résolu
Louloude74
Messages postés
62
Statut
Membre
-
Louloude74 Messages postés 62 Statut Membre -
Louloude74 Messages postés 62 Statut Membre -
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
- Word couleur de fond texte - Guide
- Somme si couleur - 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.