bonjour,
J'ai reçu un vieux fichier excel que je dois faire fonctionner sur différent post. Il utilisait de base MSHFlexGrid dans les userform mais ce n'est plus compaptible, c'est pourquoi je me tourne vers listview.
La fonction AddError ajoute les erreurs s'il y en a dans mon USF sous forme d'une liste. Je n'arrive pas a "convertir" cette fonction mshflexgrid en listview. je suis vraiment nul en VBA...
voici la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Function AddError(ByRef Data As Range, ByVal kind As String, source As String) NbErrors = NbErrors + 1 With UserForm1.ListView1 If Not (.Rows = 2 And Trim(.TextMatrix(1, 0)) = "") Then .AddItem "", 1 .TextMatrix(1, 0) = CStr(Format(CDate(Now()), "dd/mm/yy HH:nn")) .TextMatrix(1, 1) = source .TextMatrix(1, 2) = kind .TextMatrix(1, 3) = Data.Parent.Name .TextMatrix(1, 4) = Data.Address .TextMatrix(1, 5) = Data.Value If .Rows Mod 2 = 1 Then .row = 1 For i = 0 To .Cols - 1 .col = i .CellBackColor = &HC0FFC0 Next End If End With End Function
et voici le USF en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub UserForm_Initialize() '----- remplissage ListView------------------------ With ListView1 'Définit le nombre de colonnes et Entêtes With .ColumnHeaders 'Supprime les anciens entêtes .Clear 'Ajoute 3 colonnes en spécifiant le nom de l'entête 'et la largeur des colonnes .Add , , "Date", 120, lvwColumnLeft .Add , , "Procédure", 120, lvwColumnCenter .Add , , "Attendu", 120, lvwColumnCenter .Add , , "Feuille", 120, lvwColumnCenter .Add , , "Cellule", 120, lvwColumnCenter .Add , , "Donnée Fournie", 158, lvwColumnCenter End With .Gridlines = True ' affichage de lignes End With '-------------------------------------------------- 'Spécifie l'affichage en mode "Détails" ListView1.View = lvwReport End Sub
Merci d'avance pour votre soutien
Partager