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

177cotation-sxb-v.xlsm (585.99 Ko)

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
Rechercher des sujets similaires à "couleur fond listview condition suppression lignes"