Bonjour à tous et toutes,
j'ai besoin de votre aide concernant l'utilisation des ListView.J'ai un USF qui recupere des données d'un tableau dans une listview et je souhaite à partir d'une TextBox du USF modifier une donnée dans la listview qui incrementera le tableau.
Voici mon code :
Je pense que c'est au niveau de la partie rouge du code qu'il y a un pb
Merci pour votre aide
j'ai besoin de votre aide concernant l'utilisation des ListView.J'ai un USF qui recupere des données d'un tableau dans une listview et je souhaite à partir d'une TextBox du USF modifier une donnée dans la listview qui incrementera le tableau.
Voici mon code :
Code:
Option Explicit
Dim traitOK As Boolean
Private Sub CommandButton1_Click()
Dim wsBD As Worksheet
Dim derLig As Long
Dim Lig As Long
Dim Plage As Range
Dim CritRente As String
Dim CritStatut As String
Dim CritDateDeb As String
Dim CritDateFin As String
Dim LigList As Long
Set wsBD = Worksheets("RECENSEMENT")
' Dernière ligne dans la feuille BD
derLig = wsBD.Range("G" & Cells.Rows.Count).End(xlUp).Row
If derLig < 2 Then Exit Sub
' Définition de la plage en colonne A
Set Plage = wsBD.Range("A2:A" & derLig)
' Définition des critères
' N° Rente
CritRente = IIf(TextBox1.Value = "", "*", TextBox1.Value)
' Statut
CritStatut = IIf(TextBox5.Value <> "", "*", TextBox5.Value)
' Date Début
CritDateDeb = DTPicker5.Value
If DTPicker5.Value = "" Or Not IsDate(DTPicker5.Value) Then
CritDateDeb = Format(Application.WorksheetFunction.Min(Plage), "dd/mm/yyyy")
End If
' Date Fin
CritDateFin = DTPicker6.Value
If DTPicker6.Value = "" Or Not IsDate(DTPicker6.Value) Then
CritDateFin = Format(Application.WorksheetFunction.Max(Plage), "dd/mm/yyyy")
End If
CritDateFin = DateAdd("d", 1, CritDateFin)
LigList = 1
' Vider la listview
ListView1.listItems.Clear
' Boucle sur toutes les lignes
For Lig = 2 To derLig
' Rechercher par rapport aux critères
If CDate(wsBD.Range("G" & Lig).Value) >= CDate(CritDateDeb) And _
CDate(wsBD.Range("G" & Lig).Value) < CDate(CritDateFin) And _
CStr(wsBD.Range("A" & Lig).Value) Like CritRente And _
CStr(wsBD.Range("H" & Lig).Value) Like CritStatut Then
' Remplir la première colonne
ListView1.listItems.Add , , wsBD.Range("A" & Lig).Value
'Remplissage colonnes 2 à 5
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("C" & Lig).Value
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("D" & Lig).Value
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("E" & Lig).Value
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("F" & Lig).Value
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("G" & Lig).Value
ListView1.listItems(LigList).listSubItems.Add , , wsBD.Range("H" & Lig).Value
LigList = LigList + 1
End If
Next Lig
End Sub
[COLOR="Red"]Private Sub CommandButton2_Click()
ListView1.listItems(1).listSubItems(6).Text = TextBox5.Value
Unload Me
End Sub[/COLOR]
Private Sub UserForm_Initialize()
With Me
With .ListView1
With .ColumnHeaders
.Clear
.Add , , "Conseiller", 60
.Add , , "Equipe", 60
.Add , , "Client", 70
.Add , , "N° Client", 50
.Add , , "date de contact", 70
.Add , , "date 1er rappel", 70
.Add , , "Statut", 70
End With
.View = 3
.Gridlines = True
.FullRowSelect = True
.HideColumnHeaders = False
.LabelEdit = 1
End With
End With
Frame1.Visible = False
TextBox4.Enabled = False
End Sub
Je pense que c'est au niveau de la partie rouge du code qu'il y a un pb
Merci pour votre aide