Bonjour le Forum,

En adaptant le tutoriel de Silkyroad et une proposition de Jérôme sur

Cette discussion

J'ai trouvé le moyen de sauvegarder (en boucle car de nombreux contrôles), les paramètres d'un userform

Pour ceux que cela intéresserait :

Sauvegarde

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 Dim ctrl As Control
 For Each ctrl In Me.Controls
      If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
             SaveSetting "parametres", ctrl.Name, "param" & ctrl.TabIndex, ctrl.Value
     End If
 Next
End Sub
Chargement si retour aux données saisies

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Private Sub UserForm_Initialize()
 Dim ctrl As Control
 For Each ctrl In Me.Controls
      If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
              ctrl.Value = GetSetting("parametres", ctrl.Name, "param" & ctrl.TabIndex)
     End If
 Next
 End Sub
J'aurais souhaité pouvoir vider la collection de "paramètres".

Pour cela (d'après Silkyroad), j'ai adapté:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Dim ctrl As Control
For Each ctrl In monuserform.Controls
    If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
           DeleteSetting "parametres", ctrl.Name
    End If
Next
monserform.Show
Le problème est que ce dernier code est sans effet. Les paramètres restent sauvés.

Par avance, Merci pour votre aide.