Bonjour Dan, merci pour ton appui. En effet, j'ai essayé ton code mais il beugue il me dit : erreur 9, l'indice n'appartient pas à la sélection ...
Merci également Scarper pour ta proposition.
Bon sinon j'avance de mon côté : (J'ai conclu qu'il n'est pas possible de fusionner deux cellules voisines sur une ListView!)
J'ai encore besoin de :
- Aligner l'écriture en rouge à droite de la cellule.
- Colorer le fond en gris là où est écrit "encaissement Argent" ... par la suite je reproduis.
Voici le code qui m'a permis d'atteindre ce résultat :
Private Sub UserForm_Initialize()
With ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.Add Text:=Sheets("RESULTAT").Cells(1, 5), Width:=200, Alignment:=fmAlignmentLeft
.ColumnHeaders.Add Text:=Sheets("RESULTAT").Cells(1, 6), Width:=130
.ColumnHeaders.Add Text:=Sheets("RESULTAT").Cells(1, 7), Width:=40
.ColumnHeaders.Add Text:=Sheets("RESULTAT").Cells(1, 8), Width:=30
End With
Call ActualisationResultat
Call merge
End Sub
Private Sub ActualisationResultat()
Dim item As ListItem
Dim DerLig As Integer
Dim i As Integer
ListView1.ListItems.Clear
DerLig = Sheets("RESULTAT").Cells(Rows.Count, 5).End(xlUp).Row
For i = 2 To DerLig
Set item = ListView1.ListItems.Add(Text:=Sheets("RESULTAT").Cells(i, 5))
item.SubItems(1) = Sheets("RESULTAT").Cells(i, 6)
item.SubItems(2) = Sheets("RESULTAT").Cells(i, 7)
item.SubItems(3) = Sheets("RESULTAT").Cells(i, 8)
Next i
End Sub
Private Sub merge()
Dim i As Integer, j As Integer
For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).ListSubItems(1) = "" And ListView1.ListItems(i) <> "Encaissement Argent" And ListView1.ListItems(i) <> "Encaissement Argent" And ListView1.ListItems(i) <> "Dépenses d'exploitation" And ListView1.ListItems(i) <> "Charges fixes" Then
ListView1.ListItems(i).ListSubItems(1).Text = ListView1.ListItems(i)
ListView1.ListItems(i).ListSubItems(1).Bold = True
ListView1.ListItems(i).Text = ""
End If
Next i
For j = 1 To ListView1.ListItems.Count
If ListView1.ListItems(j) = "Encaissement Argent" Or ListView1.ListItems(j) = "Dépenses d'exploitation" Or ListView1.ListItems(j) = "Charges fixes" Then
ListView1.ListItems(j).Bold = True
ListView1.ListItems(j).ForeColor = vbRed
End If
Next j
End Sub
Merci