Je viens de reprendre mon code, et n'ayant toujours aucune solution, j'ai codé façon usine à gaz...
Donc tableau public dynamique qui s'initialise avec les valeurs des checkBox, qui se met a jour à chaque changement de statut d'une box et qui remet en place ces dernières lorsque l'on reviens sur la frame les contenant.
Pour ceux que cela intéresse, voici les parties de codes :
Dans mon programme principal, avant de redonner la main à l'utilisateur :
Dans le UserFormMail, pour initialisation :
1 2 3 4 5 6 7 8 9
| Friend Sub MAJTabPJ()
Dim iBcl As Integer
ReDim Preserve bTabItemChecked(ListViewPJ.ListItems.Count)
For iBcl = 1 To ListViewPJ.ListItems.Count
bTabItemChecked(iBcl) = UserFormMail.ListViewPJ.ListItems(iBcl).Checked
Next iBcl
End Sub |
Dans le UserFormMail, pour la mise à jour lorsque les checkbox sont modifiées :
1 2 3 4 5 6 7 8
| Private Sub ListViewPJ_ItemCheck(ByVal Item As MSComctlLib.ListItem)
If UBound(bTabItemChecked) < Item.Index Then
ReDim Preserve bTabItemChecked(Item.Index)
End If
bTabItemChecked(Item.Index) = UserFormMail.ListViewPJ.ListItems(Item.Index).Checked
End Sub |
et enfin dans le UserFormMail, pour la remise en place des checkbox :
1 2 3 4 5 6 7 8 9 10 11 12 13
| Private Sub MultiPage1_Change()
Dim iBcl As Integer
' Pour le bug d'affichage des checkbox lorsque changement de frame...
For iBcl = 1 To UBound(bTabItemChecked)
UserFormMail.ListViewPJ.ListItems(iBcl).Checked = bTabItemChecked(iBcl)
Next iBcl
' Pour le bug d'affichage de la listview dans une multipage...
ListViewClientsPotentiels.Left = 437
ListViewClientsPotentiels.Left = 438
End Sub |
Ah, et ne pas oublier de déclarer le tableau en public dans un module :
Public bTabItemChecked() As Boolean
Voili voilou... Si jamais quelqu'un trouve quelque chose de moins barbare, n'hésitez pas à poster ![;)](https://www.developpez.net/forums/images/smilies/icon_wink.gif)
Bonne journée
Partager