Couleur de fond listview selon condition + suppression de lignes listview

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Pipin54000
Membre habitué
Membre habitué
Messages : 136
Appréciation reçue : 1
Inscrit le : 21 juillet 2018
Version d'Excel : 2016 FR

Message par Pipin54000 » 6 mars 2019, 16:40

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
Cotation SXB V.xlsm
(585.99 Kio) Téléchargé 75 fois
Je comprends vite mais il faut m'expliquer longtemps, parfois ça vaut le coup :oops:
Qui sait, un jour le padawone deviendra maître et peut être que je vous apprendrai quelque chose 8-)
Avatar du membre
GVIALLES
Membre dévoué
Membre dévoué
Messages : 816
Appréciations reçues : 73
Inscrit le : 28 novembre 2017
Version d'Excel : 2016, 360
Téléchargements : Mes applications

Message par GVIALLES » 9 mars 2019, 21:08

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
Cordialement,

Gérard
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message