Couleur de fond listview selon condition + suppression de lignes listview
Bonjour à tous,
Merci des réponses que vous m'apporterez
Je cherche à colorier dans ma listview chaque ligne suivant conditions dans la colonne "L" :
- vert si L = "VALIDEE"
- rouge si L = "NON FERME"
- orange si L = "EN ATTENTE"
- bleu si L = "MANQUEE"
Mon 2e soucis est le suivant, je cherche à pouvoir rechercher une cotation suivant le numéro de cot en colonne B grâce à une textbox.
enfin j'aimerai pouvoir supprimer une ligne de ma listview en cliquant sur un boutton et en selectionnant la ligne par 1 clic
Un grand merci à ceux qui pourront m'aider - les codes ne sont clairement pas les plus beau qu'il existe, soyez indulgent
A vous lire
Pipin54000
Bonsoir Pipin54000,
1er Pb : le composant LISTVIEW n'expose pas (en VBA) la propriété "Backcolor" pour l'objet listitem. Par contre, la propriété "Forecolor" (couleur du texte) est bien modifiable par code. A toutes fins utiles, un embryon de code :
Set oItem = .ListItems(L)
Select Case tbl(L, 12)
Case Is = "VALIDEE"
oItem.ForeColor = vbGreen
Case Is = "NON FERME"
oItem.ForeColor = vbRed
Case Is = "EN ATTENTE"
oItem.ForeColor = lOrange
Case Is = "MANQUEE"
oItem.ForeColor = vbBlue
End Select
2ème Pb: Avec un bouton nommé "btnSearch" le code suivant (la cotation à rechercher est dans "TestBox1")
Private Sub btnSearch_Click()
Dim oItem As MSComctlLib.ListItem
If Len(Trim(Me.TextBox1.Value)) > 0 Then
Set oItem = ListView1.FindItem(Me.TextBox1.Value, lvwSubItem, 1)
If Not oItem Is Nothing Then
oItem.EnsureVisible
oItem.Selected = True
ListView1.SetFocus
Else
MsgBox "Cotation non trouvée!"
End If
Else
MsgBox "Entrez une cotation à rechercher SVP!", vbExclamation
End If
End Sub
3ème Pb : Avec un bouton nommé "btnDeleteItem" :
Private Sub btnDeleteItem_Click()
Dim oItem As MSComctlLib.ListItem
Dim lRep As Long
Set oItem = ListView1.SelectedItem
If Not oItem Is Nothing Then
With oItem
.EnsureVisible
ListView1.SetFocus
lRep = MsgBox("Confirmez-vous la suppression de la cotation :'" & .ListSubItems(1) & "'?", vbExclamation + vbYesNo + vbDefaultButton2, "Suppression ligne")
If lRep = vbYes Then
ListView1.ListItems.Remove (oItem.Index)
End If
End With
End If
End Sub