Re : userform besoin d'aide
<< Bonjour JP14
<< J'ai tester la derniere version j'ai une erreur qui survient au niveau :
<< Private Sub Initlistview()
'ligne2 = Mid(ListView1.ListItems(Item.Index).Key, 2, 50)
Dim dc1 As Long 'dernière colonne
Dim j As Long
Dim date1 As Date
Dim mois1 As String
Dim jour1 As String
nbcollist = 0
ListView1.CheckBoxes = True
ListView1.ListItems.Clear
'----- remplissage ListView------------------------
With ListView1
'Définit le nombre de colonnes et Entêtes
With .ColumnHeaders
'Supprime les anciens entêtes
.Clear
'Ajoute x colonnes en spécifiant le nom de l'entête
'et la largeur des colonnes
For i = 1 To Sheets(nomf1).Range("IV" & nulititre).End(xlToLeft).Column
If dimcol(i) <> 0 Then
.Add , , Sheets(nomf1).Cells(nulititre, i), dimcol(i)
nbcollist = nbcollist + 1
ncldate(i) = False
If coldate(i) = True Then ncldate(nbcollist) = True
End If
Next i
coldate1 = nbcollist ' coldate1 contient la dernière colonne affichée
For i = 1 To nbcollist
If ncldate(i) = True Then
.Add , , "tridate", 0
nbcollist = nbcollist + 1
ncldatetri(i) = nbcollist
End If
Next i
End With
'Remplissage des colonnes
For i = nulititre + 1 To Sheets(nomf1).Range("A65536").End(xlUp).Row
' colonne
On Error GoTo suite1
.ListItems.Add , "l" & i, Sheets(nomf1).Cells(i, 1)
For j = 2 To Sheets(nomf1).Range("IV" & nulititre).End(xlToLeft).Column
If dimcol(j) <> 0 Then
.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets(nomf1).Cells(i, j)
End If
Next j
'colonne pour des dates
' principe création d'une colonne cachée avrc comme contenu
' la date sous la forme aaaammmjj
' lorsque l'on clique sur la colonne date on intercepte le numéro de la colonne
' que l'on remplace par le numéro de cette colonne variable coldate1
For j = 1 To 10
If coldate(j) = True Then ' si coldate(j) est une date
If IsDate(Sheets(nomf1).Cells(i, j)) Then
date1 = Sheets(nomf1).Cells(i, j)
If Len(Month(date1)) < 2 Then
mois1 = "0" & Month(date1)
Else
mois1 = Month(date1)
End If
If Len(Day(date1)) < 2 Then
jour1 = "0" & Day(date1)
Else
jour1 = Day(date1)
End If
.ListItems(.ListItems.Count).ListSubItems.Add , , Year(date1) & mois1 & jour1
Else
.ListItems(.ListItems.Count).ListSubItems.Add , , "00000000"
End If
End If
Next j
suite1:
Resume Next
Next i
--------------------
'Spécifie l'affichage en mode "Détails"
.View = lvwReport 'affichage en mode Rapport
.Gridlines = True 'affichage d'un quadrillage
.FullRowSelect = True 'Sélection des lignes complètes
.LabelEdit = 1 'empêcher la modification manuelle des données en spécifiant la valeur 1
.MultiSelect = True 'Pour autoriser la multi sélection, vous devez tout d'abord passer la propriété Multiselect à True. Ensuite sélectionnez les lignes en gardant enfoncée la touche Ctrl.
End With
End Sub
<< Merci