listview couleur

boule de neige

XLDnaute Nouveau
Bonjour le forum,

Comment mettre la colone 5 de telephone le texte en rouge et en gras.

HTML:
Private Sub UserForm_Initialize()
Dim i As Long
'--- code de la ListView1 ---
With ListView1
    With .ColumnHeaders
       .Clear
       .Add , , "Client", 140
       .Add , , "Intitulé", 60
       .Add , , "Interlocuteur", 50
       .Add , , "Prestation", 50
       .Add , , "N°de telephone", 50
       .Add , , "Organisme", 60
       .Add , , "Service", 100
       .Add , , "Section", 60
       .Add , , "Collaborateur", 100
       .Add , , "date", 100
       
    End With
 .View = lvwReport
 .FullRowSelect = True
 .Gridlines = True
        For i = 4 To Sheets("BD").Range("A65536").End(xlUp).Row
           .ListItems.Add , , Sheets("BD").Cells(i, 1)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 2)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 3)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 4)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 5)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 6)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 7)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 8)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 9)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 10)
           .ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 11)
          
           
           
            
        Next
    ListView1.ListItems(1).Selected = False '--- désactive la sélection de la première ligne par défaut ---
    Set ListView1.SelectedItem = Nothing    '--- désactive la sélection de la première ligne par défaut ---
End With
End Sub
'--- code tri lors de la sélection d'une colonne pour la ListView1 ---
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    ListView1.Sorted = False
    ListView1.SortKey = ColumnHeader.Index - 1
    
    If ListView1.SortOrder = lvwAscending Then
        ListView1.SortOrder = lvwDescending
        Else
        ListView1.SortOrder = lvwAscending
    End If
    ListView1.Sorted = True
End Sub
'--- code fermeture de UserForm1 ---
Private Sub QuitterRecherche_Click()
   Unload UserForm1
End Sub
'--- affichage UserForm2 ---
Private Sub Selectionner_Click()
UserForm2.Show
ListView1.ListItems.Clear
With Sheets("BD")
    .AutoFilterMode = False
    .Range("A3").AutoFilter Field:=Col, Criteria1:=Sel
    For Each Cel In .Range("A4:A" & .Range("A65536").End(xlUp).Row).SpecialCells(xlVisible)
        With ListView1
            .ListItems.Add , , Cel
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 1)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 2)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 3)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 4)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 5)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 6)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 7)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 8)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 9)
            .ListItems(.ListItems.Count).ListSubItems.Add , , Cel.Offset(0, 10)
           
            
        End With
    Next
    .AutoFilterMode = False
End With
End Sub
Private Sub Initialiser_Click()
UserForm_Initialize
End Sub

merci de votre aide
 

CHALET53

XLDnaute Barbatruc
Re : listview couleur

Bonjour,

Peut-être en rajoutant la ligne en gras (sans le fichier pour tester, difficile)


For i = 4 To Sheets("BD").Range("A65536").End(xlUp).Row
.ListItems.Add , , Sheets("BD").Cells(i, 1)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 2)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 4)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 5)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 6)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 7)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 8)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 9)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 10)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 11)

.ListItems(.ListItems.Count).ListSubItems(5).ForeColor = &HFF&


Next
 

laetitia90

XLDnaute Barbatruc
Re : listview couleur

bonjour boule de neige,CHALET53:):)
une autre facon de l'ecrire

Dim i As Long, j As Byte, x As Long, c As Range

Code:
For Each c In Sheets("BD").Range("a4", Sheets("BD").Cells(Rows.Count, "a").End(xlUp))
  x = x + 1
  .ListItems.Add , , c
  For j = 1 To 11
  If j <> 4 Then
  .ListItems(x).ListSubItems.Add , , c.Offset(0, j)
  Else
  .ListItems(x).ListSubItems.Add , , Format(c.Offset(0, j), "0#"" ""##"" ""##"" ""##"" ""##")
  .ListItems(x).ListSubItems(j).ForeColor = vbRed
  .ListItems(x).ListSubItems(j).Bold = 1
  End If: Next j: Next c
 

CHALET53

XLDnaute Barbatruc
Re : listview couleur

Les instructions en gras semblent donner le résultat (sans espace entre le C et le o de color:

For i = 4 To Sheets("BD").Range("A65536").End(xlUp).Row
.ListItems.Add , , Sheets("BD").Cells(i, 1)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 2)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 4)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 5)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 6)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 7)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 8)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 9)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 10)
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("BD").Cells(i, 11)


.ListItems(.ListItems.Count).ListSubItems(4).ForeColor = &HFF&
.ListItems(.ListItems.Count).ListSubItems(4).Bold = True

Next
 

Si...

XLDnaute Barbatruc
Re : listview couleur

salut

on peut changer bien des choses comme dans l'exemple joint mais pas la couleur des titres, de façon simple toutefois (les remplacer par des étiquettes par exemple).

As-tu vraiment besoin d'appeler un second UsF ? Cela alourdit la programmation.

Remarque : les Propriétés du contrôle "ListView" permettent d'éliminer pas mal de lignes de codes.
LView.jpg
 

Pièces jointes

  • LView.jpg
    LView.jpg
    52.5 KB · Affichages: 102
  • LView.jpg
    LView.jpg
    52.5 KB · Affichages: 99
  • Recherche_Listview.xls
    283 KB · Affichages: 103

Discussions similaires

Réponses
17
Affichages
760

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata