Salut,
Il y a 2 solutions simples :
La première :Tous tes contrôles sont placés dans une frame... à l'exception de ton bouton 'modifier'.
Dans ce cas là, y a pas plus simple : désactive simplement ta frame (myFrame.Enabled = True).
Ainsi tous les contrôles contenus dans cette frame seront désactivés. Mais d'un point de vue visuel, tu ne le remarqueras pas car les contrôles dans cette frame ne seront pas grisés.
Deuxième solution :Tous tes contrôles ne sont pas dans une frame.
Utiliser une boucle
For Each myObject In myForm : Très pratique, la boucle désactivera TOUS les différents contrôles du form.
Faudra juste penser à réactiver ton bouton 'Modifier' à la fin de la procédure, et activer à nouveau les contrôles (ou objets) quand on appuie sur ce bouton.
Exemple :
Private Sub Form_Load()
'# Par défaut, on désactive les controles de ce form:
'# Dans l'exemple, le bouton 'modifier' s'apelle CmdModify
myObjects_Enable False, Me, Me.CmdModify
End Sub
Private Sub CmdModify_Click()
myObjects_Enable True, Me, CmdModify
End Sub
Private Sub myObjects_Enable(ByVal Bool As Boolean, myForm As Form, myButtonModified_Name As CommandButton)
'# Permet d'activer ou de désactiver tous les objets du form, sauf le bouton myButtonModified_Name
'# Bool active ou non les différents objets
'# myForm représente le form contenant les objets
'# myButtonModified_Name représente le bouton qui doit rester activé !
Dim myObject As Object
On Local Error Resume Next 'Au cas où...
'# Désactive TOUS les objets du form 'myForm':
For Each myObject In myForm
myObject.Enabled = Bool
Next
'# Réactive le bouton 'Modifier':
myButtonModified_Name.Enabled = True
On Local Error GoTo 0
End Sub
titicar
