Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Verouillage d'un champs selon la valeur d'une case à cocher

18 réponses
Avatar
s.jean
Bonjour,

J'ai un formulaire avec plusieurs champs + un sous-formulaire.

Je souhaiterai que tous les champs du formulaire et sous-formulaire
soient verouill=E9s si la case Cocher35 est coch=E9e, en laissant celle ci
non verouill=E9e pour pouvoir modifier et verouiller / d=E9verouiller.

Quel code puis je utiliser ? j'ai d=E9j=E0 essay=E9 plusieurs codes trouv=E9=
s
sur ce forum mais en vain ...

Merci beaucoup
Sandrine

8 réponses

1 2
Avatar
s.jean
Bonjour

J'avais rajouté la partie Else ... car quand ma case est cochée et que
je la décoche les champs restaient désactivés et je préfère que ça se
réactive tout de suite plutot que fermer et rouvrir le formulaire ...

En tous merci pour votre patience !

Sandrine



On 17 juin, 16:00, Fabien wrote:
Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
Eric a écrit :



> re,

> Là encore, si je peux, je virerai la parenthèse ouvrante sur la lign e du
> If ou alors j'en rajouterai une fermante avant le Then
> Pour une question d'équilibre ;-)

> Ps: oui, je sais, c'est Michel l'instigateur

> Fabien a écrit :
>> Et plus encore ;-)
>> Private Sub Form_Current()
>>  > Dim oCtrl As control
>>  >  For Each oCtrl In Me.Controls
>>  >   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>  >         oCtrl.Enabled = Not(Cocher35 = -1)
>>  >   End If
>>  >  Next
>>  > End Sub

>> Michel_D a écrit :
>>> Bonjour,

>>> Voici une variante.

>>> Private Sub Form_Current()
>>> Dim oCtrl As control
>>>  For Each oCtrl In Me.Controls
>>>   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>>    If Cocher35 = -1 Then
>>>     oCtrl.Enabled = False
>>>    Else
>>>     oCtrl.Enabled = True
>>>    End If
>>>   End If
>>>  Next
>>> End Sub

>>> "s.jean" a écrit dans le message de
>>>news: .
>>> Bonjour,

>>> Je pense également que ça bugue sur
>>> moncontrol.Enable = Me.Cocher35

>>> peut être parce que enable est de type vrai/faux et cocher35 de type
>>> 0/-1 (oui/non).

>>> Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
>>> marche :

>>> Private Sub Form_Current()
>>> Dim moncontrol As control
>>>      For Each moncontrol In Me.Controls
>>>          If (moncontrol.Name <> "Cocher35" And moncontrol.Co ntrolType
>>> <> acLabel And Cocher35 = -1) Then
>>>                 moncontrol.Enabled = False
>>>                 Else
>>>                 If (moncontrol.Name <> "Cocher35" And
>>> moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
>>>                 moncontrol.Enabled = True
>>>                 End If
>>>                 End If
>>>      Next

>>> End Sub

>>> Peut-on simplifier ce code ?

>>> Merci
>>> Sandrine

>>> On 17 juin, 12:46, Eric wrote:
>>>> Fabien a écrit :

>>>>> s.jean a écrit :
>>>>>> Bonjour,
>>>>>> J'ai donc mis le code suivant sur l'évènement activation du
>>>>>> formulaire :
>>>>>> Private Sub Form_Current()
>>>>>> Dim moncontrol As Control
>>>>>> For Each moncontrol In Me.Controls
>>>>>> If moncontrol.Name <> "Cocher35" Then
>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>> End If
>>>>>> Next
>>>>>> End Sub
>>>>>> Quand j'ouvre le formulaire j'ai un message Propriété ou méth ode non
>>>>>> gérée par cet objet.
>>>>>> D'où vient l'erreur ?
>>>>> Salut,
>>>>> Cela provient du fait que certain controle ne possedent pas la
>>>>> propriete
>>>>> enable. (les etiquettes par exemple)
>>>>> Il faudrait donc creuser pour savoir comment connaitre la nature du
>>>>> controle ou, mais c'est pas beau, mettre un On error resume next au
>>>>> début du code.
>>>> Bonjour,

>>>> En plus, je pense qu'il faut mettre EnableD et non Enable

>>>> Qu'en pensez-vous ?

>>>> --
>>>> A+
>>>> Erichttp://www.mpfa.info/
>>>> Archives
>>>> :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
>>>> Masquer le texte des messages précédents -

>>>> - Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -

- Afficher le texte des messages précédents -


Avatar
s.jean
Bonjour,

Et que dois je rajouter pour que lorsque je place ce code sur
afterupdate de cocher35, les champs se réactivent si ils sont
désactivés ...

Merci de votre patience !
Sandrine

On 17 juin, 16:00, Fabien wrote:
Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
Eric a écrit :



> re,

> Là encore, si je peux, je virerai la parenthèse ouvrante sur la lign e du
> If ou alors j'en rajouterai une fermante avant le Then
> Pour une question d'équilibre ;-)

> Ps: oui, je sais, c'est Michel l'instigateur

> Fabien a écrit :
>> Et plus encore ;-)
>> Private Sub Form_Current()
>>  > Dim oCtrl As control
>>  >  For Each oCtrl In Me.Controls
>>  >   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>  >         oCtrl.Enabled = Not(Cocher35 = -1)
>>  >   End If
>>  >  Next
>>  > End Sub

>> Michel_D a écrit :
>>> Bonjour,

>>> Voici une variante.

>>> Private Sub Form_Current()
>>> Dim oCtrl As control
>>>  For Each oCtrl In Me.Controls
>>>   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>>    If Cocher35 = -1 Then
>>>     oCtrl.Enabled = False
>>>    Else
>>>     oCtrl.Enabled = True
>>>    End If
>>>   End If
>>>  Next
>>> End Sub

>>> "s.jean" a écrit dans le message de
>>>news: .
>>> Bonjour,

>>> Je pense également que ça bugue sur
>>> moncontrol.Enable = Me.Cocher35

>>> peut être parce que enable est de type vrai/faux et cocher35 de type
>>> 0/-1 (oui/non).

>>> Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
>>> marche :

>>> Private Sub Form_Current()
>>> Dim moncontrol As control
>>>      For Each moncontrol In Me.Controls
>>>          If (moncontrol.Name <> "Cocher35" And moncontrol.Co ntrolType
>>> <> acLabel And Cocher35 = -1) Then
>>>                 moncontrol.Enabled = False
>>>                 Else
>>>                 If (moncontrol.Name <> "Cocher35" And
>>> moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
>>>                 moncontrol.Enabled = True
>>>                 End If
>>>                 End If
>>>      Next

>>> End Sub

>>> Peut-on simplifier ce code ?

>>> Merci
>>> Sandrine

>>> On 17 juin, 12:46, Eric wrote:
>>>> Fabien a écrit :

>>>>> s.jean a écrit :
>>>>>> Bonjour,
>>>>>> J'ai donc mis le code suivant sur l'évènement activation du
>>>>>> formulaire :
>>>>>> Private Sub Form_Current()
>>>>>> Dim moncontrol As Control
>>>>>> For Each moncontrol In Me.Controls
>>>>>> If moncontrol.Name <> "Cocher35" Then
>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>> End If
>>>>>> Next
>>>>>> End Sub
>>>>>> Quand j'ouvre le formulaire j'ai un message Propriété ou méth ode non
>>>>>> gérée par cet objet.
>>>>>> D'où vient l'erreur ?
>>>>> Salut,
>>>>> Cela provient du fait que certain controle ne possedent pas la
>>>>> propriete
>>>>> enable. (les etiquettes par exemple)
>>>>> Il faudrait donc creuser pour savoir comment connaitre la nature du
>>>>> controle ou, mais c'est pas beau, mettre un On error resume next au
>>>>> début du code.
>>>> Bonjour,

>>>> En plus, je pense qu'il faut mettre EnableD et non Enable

>>>> Qu'en pensez-vous ?

>>>> --
>>>> A+
>>>> Erichttp://www.mpfa.info/
>>>> Archives
>>>> :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
>>>> Masquer le texte des messages précédents -

>>>> - Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -

- Afficher le texte des messages précédents -


Avatar
Fabien
Ben la même chose ;-)
Dans l'ideal tu fait
Private Sub Form_Current()
Active_controle
End Sub

Private Sub Cocher35_afterupdate()
Active_Controle
End sub

Private Sub Active_Controle()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<>acLabel) Then
oCtrl.Enabled = Not(Cocher35 = -1)
End If
Next
End Sub

et voilou !

s.jean a écrit :
Bonjour,

Et que dois je rajouter pour que lorsque je place ce code sur
afterupdate de cocher35, les champs se réactivent si ils sont
désactivés ...

Merci de votre patience !
Sandrine

On 17 juin, 16:00, Fabien wrote:
Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
Eric a écrit :



re,
Là encore, si je peux, je virerai la parenthèse ouvrante sur la ligne du
If ou alors j'en rajouterai une fermante avant le Then
Pour une question d'équilibre ;-)
Ps: oui, je sais, c'est Michel l'instigateur
Fabien a écrit :
Et plus encore ;-)
Private Sub Form_Current()
> Dim oCtrl As control
> For Each oCtrl In Me.Controls
> If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
> oCtrl.Enabled = Not(Cocher35 = -1)
> End If
> Next
> End Sub
Michel_D a écrit :
Bonjour,
Voici une variante.
Private Sub Form_Current()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub
"s.jean" a écrit dans le message de
news:
Bonjour,
Je pense également que ça bugue sur
moncontrol.Enable = Me.Cocher35
peut être parce que enable est de type vrai/faux et cocher35 de type
0/-1 (oui/non).
Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
marche :
Private Sub Form_Current()
Dim moncontrol As control
For Each moncontrol In Me.Controls
If (moncontrol.Name <> "Cocher35" And moncontrol.ControlType
<> acLabel And Cocher35 = -1) Then
moncontrol.Enabled = False
Else
If (moncontrol.Name <> "Cocher35" And
moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
moncontrol.Enabled = True
End If
End If
Next
End Sub
Peut-on simplifier ce code ?
Merci
Sandrine
On 17 juin, 12:46, Eric wrote:
Fabien a écrit :
s.jean a écrit :
Bonjour,
J'ai donc mis le code suivant sur l'évènement activation du
formulaire :
Private Sub Form_Current()
Dim moncontrol As Control
For Each moncontrol In Me.Controls
If moncontrol.Name <> "Cocher35" Then
moncontrol.Enable = Me.Cocher35
End If
Next
End Sub
Quand j'ouvre le formulaire j'ai un message Propriété ou méthode non
gérée par cet objet.
D'où vient l'erreur ?


Salut,
Cela provient du fait que certain controle ne possedent pas la
propriete
enable. (les etiquettes par exemple)
Il faudrait donc creuser pour savoir comment connaitre la nature du
controle ou, mais c'est pas beau, mettre un On error resume next au
début du code.


Bonjour,
En plus, je pense qu'il faut mettre EnableD et non Enable
Qu'en pensez-vous ?
--
A+
Erichttp://www.mpfa.info/
Archives
:http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -








- Afficher le texte des messages précédents -





Avatar
s.jean
super, ça marche ! merci encore !

Sandrine

On 17 juin, 16:48, Fabien wrote:
Ben la même chose ;-)
Dans l'ideal tu fait
Private Sub Form_Current()
        Active_controle
End Sub

Private Sub Cocher35_afterupdate()
        Active_Controle
End sub

Private Sub Active_Controle()
Dim oCtrl As control
   For Each oCtrl In Me.Controls
        If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<>acLabe l) Then
          oCtrl.Enabled = Not(Cocher35 = -1)
    End If
   Next
End Sub

et voilou !

s.jean a écrit :



> Bonjour,

> Et que dois je rajouter pour que lorsque je place ce code sur
> afterupdate de cocher35, les champs se réactivent si ils sont
> désactivés ...

> Merci de votre patience !
> Sandrine

> On 17 juin, 16:00, Fabien wrote:
>> Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
>> Eric a écrit :

>>> re,
>>> Là encore, si je peux, je virerai la parenthèse ouvrante sur la li gne du
>>> If ou alors j'en rajouterai une fermante avant le Then
>>> Pour une question d'équilibre ;-)
>>> Ps: oui, je sais, c'est Michel l'instigateur
>>> Fabien a écrit :
>>>> Et plus encore ;-)
>>>> Private Sub Form_Current()
>>>>  > Dim oCtrl As control
>>>>  >  For Each oCtrl In Me.Controls
>>>>  >   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Th en
>>>>  >         oCtrl.Enabled = Not(Cocher35 = -1)
>>>>  >   End If
>>>>  >  Next
>>>>  > End Sub
>>>> Michel_D a écrit :
>>>>> Bonjour,
>>>>> Voici une variante.
>>>>> Private Sub Form_Current()
>>>>> Dim oCtrl As control
>>>>>  For Each oCtrl In Me.Controls
>>>>>   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>>>>    If Cocher35 = -1 Then
>>>>>     oCtrl.Enabled = False
>>>>>    Else
>>>>>     oCtrl.Enabled = True
>>>>>    End If
>>>>>   End If
>>>>>  Next
>>>>> End Sub
>>>>> "s.jean" a écrit dans le message de
>>>>>news: ...
>>>>> Bonjour,
>>>>> Je pense également que ça bugue sur
>>>>> moncontrol.Enable = Me.Cocher35
>>>>> peut être parce que enable est de type vrai/faux et cocher35 de ty pe
>>>>> 0/-1 (oui/non).
>>>>> Si je mets ce code sur l'activation et l'afterupdate de cocher35 ç a
>>>>> marche :
>>>>> Private Sub Form_Current()
>>>>> Dim moncontrol As control
>>>>>      For Each moncontrol In Me.Controls
>>>>>          If (moncontrol.Name <> "Cocher35" And moncontrol. ControlType
>>>>> <> acLabel And Cocher35 = -1) Then
>>>>>                 moncontrol.Enabled = False
>>>>>                 Else
>>>>>                 If (moncontrol.Name <> "Cocher35" An d
>>>>> moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
>>>>>                 moncontrol.Enabled = True
>>>>>                 End If
>>>>>                 End If
>>>>>      Next
>>>>> End Sub
>>>>> Peut-on simplifier ce code ?
>>>>> Merci
>>>>> Sandrine
>>>>> On 17 juin, 12:46, Eric wrote:
>>>>>> Fabien a écrit :
>>>>>>> s.jean a écrit :
>>>>>>>> Bonjour,
>>>>>>>> J'ai donc mis le code suivant sur l'évènement activation du
>>>>>>>> formulaire :
>>>>>>>> Private Sub Form_Current()
>>>>>>>> Dim moncontrol As Control
>>>>>>>> For Each moncontrol In Me.Controls
>>>>>>>> If moncontrol.Name <> "Cocher35" Then
>>>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>>>> End If
>>>>>>>> Next
>>>>>>>> End Sub
>>>>>>>> Quand j'ouvre le formulaire j'ai un message Propriété ou mé thode non
>>>>>>>> gérée par cet objet.
>>>>>>>> D'où vient l'erreur ?
>>>>>>> Salut,
>>>>>>> Cela provient du fait que certain controle ne possedent pas la
>>>>>>> propriete
>>>>>>> enable. (les etiquettes par exemple)
>>>>>>> Il faudrait donc creuser pour savoir comment connaitre la nature d u
>>>>>>> controle ou, mais c'est pas beau, mettre un On error resume next a u
>>>>>>> début du code.
>>>>>> Bonjour,
>>>>>> En plus, je pense qu'il faut mettre EnableD et non Enable
>>>>>> Qu'en pensez-vous ?
>>>>>> --
>>>>>> A+
>>>>>> Erichttp://www.mpfa.info/
>>>>>> Archives
>>>>>> :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
>>>>>> Masquer le texte des messages précédents -
>>>>>> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
>> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Fabien
s.jean a écrit :
super, ça marche ! merci encore !

Sandrine

On 17 juin, 16:48, Fabien wrote:
Ben la même chose ;-)
Dans l'ideal tu fait
Private Sub Form_Current()
Active_controle
End Sub

Private Sub Cocher35_afterupdate()
Active_Controle
End sub

Private Sub Active_Controle()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<>acLabel) Then
oCtrl.Enabled = Not(Cocher35 = -1)
End If
Next
End Sub

et voilou !

s.jean a écrit :



Bonjour,
Et que dois je rajouter pour que lorsque je place ce code sur
afterupdate de cocher35, les champs se réactivent si ils sont
désactivés ...
Merci de votre patience !
Sandrine
On 17 juin, 16:00, Fabien wrote:
Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
Eric a écrit :
re,
Là encore, si je peux, je virerai la parenthèse ouvrante sur la ligne du
If ou alors j'en rajouterai une fermante avant le Then
Pour une question d'équilibre ;-)
Ps: oui, je sais, c'est Michel l'instigateur
Fabien a écrit :
Et plus encore ;-)
Private Sub Form_Current()
> Dim oCtrl As control
> For Each oCtrl In Me.Controls
> If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
> oCtrl.Enabled = Not(Cocher35 = -1)
> End If
> Next
> End Sub
Michel_D a écrit :
Bonjour,
Voici une variante.
Private Sub Form_Current()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub
"s.jean" a écrit dans le message de
news:
Bonjour,
Je pense également que ça bugue sur
moncontrol.Enable = Me.Cocher35
peut être parce que enable est de type vrai/faux et cocher35 de type
0/-1 (oui/non).
Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
marche :
Private Sub Form_Current()
Dim moncontrol As control
For Each moncontrol In Me.Controls
If (moncontrol.Name <> "Cocher35" And moncontrol.ControlType
<> acLabel And Cocher35 = -1) Then
moncontrol.Enabled = False
Else
If (moncontrol.Name <> "Cocher35" And
moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
moncontrol.Enabled = True
End If
End If
Next
End Sub
Peut-on simplifier ce code ?
Merci
Sandrine
On 17 juin, 12:46, Eric wrote:
Fabien a écrit :
s.jean a écrit :
Bonjour,
J'ai donc mis le code suivant sur l'évènement activation du
formulaire :
Private Sub Form_Current()
Dim moncontrol As Control
For Each moncontrol In Me.Controls
If moncontrol.Name <> "Cocher35" Then
moncontrol.Enable = Me.Cocher35
End If
Next
End Sub
Quand j'ouvre le formulaire j'ai un message Propriété ou méthode non
gérée par cet objet.
D'où vient l'erreur ?


Salut,
Cela provient du fait que certain controle ne possedent pas la
propriete
enable. (les etiquettes par exemple)
Il faudrait donc creuser pour savoir comment connaitre la nature du
controle ou, mais c'est pas beau, mettre un On error resume next au
début du code.


Bonjour,
En plus, je pense qu'il faut mettre EnableD et non Enable
Qu'en pensez-vous ?
--
A+
Erichttp://www.mpfa.info/
Archives
:http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -








- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -




- Afficher le texte des messages précédents -





De rien :-)
Merci a toi pour le retour et bonne continuation
Avatar
s.jean
Bonjour,

j'ai besoin d'un petit complément ....

sur mon formulaire j'ai 2 onglets. Le fait que tout soit désactivé
m'empeche de visualiser le 2e onglet. Je voudrai pouvoir cliquer
dessus pour visualiser, sans activer. Que dois je rajouter ?

Merci !
Sandrine


On 18 juin, 08:15, Fabien wrote:
s.jean a écrit :



> super, ça marche ! merci encore !

> Sandrine

> On 17 juin, 16:48, Fabien wrote:
>> Ben la même chose ;-)
>> Dans l'ideal tu fait
>> Private Sub Form_Current()
>>         Active_controle
>> End Sub

>> Private Sub Cocher35_afterupdate()
>>         Active_Controle
>> End sub

>> Private Sub Active_Controle()
>> Dim oCtrl As control
>>    For Each oCtrl In Me.Controls
>>         If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<>ac Label) Then
>>           oCtrl.Enabled = Not(Cocher35 = -1)
>>     End If
>>    Next
>> End Sub

>> et voilou !

>> s.jean a écrit :

>>> Bonjour,
>>> Et que dois je rajouter pour que lorsque je place ce code sur
>>> afterupdate de cocher35, les champs se réactivent si ils sont
>>> désactivés ...
>>> Merci de votre patience !
>>> Sandrine
>>> On 17 juin, 16:00, Fabien wrote:
>>>> Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
>>>> Eric a écrit :
>>>>> re,
>>>>> Là encore, si je peux, je virerai la parenthèse ouvrante sur la ligne du
>>>>> If ou alors j'en rajouterai une fermante avant le Then
>>>>> Pour une question d'équilibre ;-)
>>>>> Ps: oui, je sais, c'est Michel l'instigateur
>>>>> Fabien a écrit :
>>>>>> Et plus encore ;-)
>>>>>> Private Sub Form_Current()
>>>>>>  > Dim oCtrl As control
>>>>>>  >  For Each oCtrl In Me.Controls
>>>>>>  >   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
>>>>>>  >         oCtrl.Enabled = Not(Cocher35 = -1)
>>>>>>  >   End If
>>>>>>  >  Next
>>>>>>  > End Sub
>>>>>> Michel_D a écrit :
>>>>>>> Bonjour,
>>>>>>> Voici une variante.
>>>>>>> Private Sub Form_Current()
>>>>>>> Dim oCtrl As control
>>>>>>>  For Each oCtrl In Me.Controls
>>>>>>>   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel The n
>>>>>>>    If Cocher35 = -1 Then
>>>>>>>     oCtrl.Enabled = False
>>>>>>>    Else
>>>>>>>     oCtrl.Enabled = True
>>>>>>>    End If
>>>>>>>   End If
>>>>>>>  Next
>>>>>>> End Sub
>>>>>>> "s.jean" a écrit dans le message de
>>>>>>>news: com...
>>>>>>> Bonjour,
>>>>>>> Je pense également que ça bugue sur
>>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>>> peut être parce que enable est de type vrai/faux et cocher35 de type
>>>>>>> 0/-1 (oui/non).
>>>>>>> Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
>>>>>>> marche :
>>>>>>> Private Sub Form_Current()
>>>>>>> Dim moncontrol As control
>>>>>>>      For Each moncontrol In Me.Controls
>>>>>>>          If (moncontrol.Name <> "Cocher35" And moncontr ol.ControlType
>>>>>>> <> acLabel And Cocher35 = -1) Then
>>>>>>>                 moncontrol.Enabled = False
>>>>>>>                 Else
>>>>>>>                 If (moncontrol.Name <> "Cocher35" And
>>>>>>> moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
>>>>>>>                 moncontrol.Enabled = True
>>>>>>>                 End If
>>>>>>>                 End If
>>>>>>>      Next
>>>>>>> End Sub
>>>>>>> Peut-on simplifier ce code ?
>>>>>>> Merci
>>>>>>> Sandrine
>>>>>>> On 17 juin, 12:46, Eric wrote:
>>>>>>>> Fabien a écrit :
>>>>>>>>> s.jean a écrit :
>>>>>>>>>> Bonjour,
>>>>>>>>>> J'ai donc mis le code suivant sur l'évènement activation d u
>>>>>>>>>> formulaire :
>>>>>>>>>> Private Sub Form_Current()
>>>>>>>>>> Dim moncontrol As Control
>>>>>>>>>> For Each moncontrol In Me.Controls
>>>>>>>>>> If moncontrol.Name <> "Cocher35" Then
>>>>>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>> Quand j'ouvre le formulaire j'ai un message Propriété ou m éthode non
>>>>>>>>>> gérée par cet objet.
>>>>>>>>>> D'où vient l'erreur ?
>>>>>>>>> Salut,
>>>>>>>>> Cela provient du fait que certain controle ne possedent pas la
>>>>>>>>> propriete
>>>>>>>>> enable. (les etiquettes par exemple)
>>>>>>>>> Il faudrait donc creuser pour savoir comment connaitre la natur e du
>>>>>>>>> controle ou, mais c'est pas beau, mettre un On error resume nex t au
>>>>>>>>> début du code.
>>>>>>>> Bonjour,
>>>>>>>> En plus, je pense qu'il faut mettre EnableD et non Enable
>>>>>>>> Qu'en pensez-vous ?
>>>>>>>> --
>>>>>>>> A+
>>>>>>>> Erichttp://www.mpfa.info/
>>>>>>>> Archives
>>>>>>>> :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r-
>>>>>>>> Masquer le texte des messages précédents -
>>>>>>>> - Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
>>>> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
>> - Afficher le texte des messages précédents -

De rien :-)
Merci a toi pour le retour et bonne continuation- Masquer le texte des me ssages précédents -

- Afficher le texte des messages précédents -


Avatar
Fabien
s.jean a écrit :
Bonjour,

j'ai besoin d'un petit complément ....

sur mon formulaire j'ai 2 onglets. Le fait que tout soit désactivé
m'empeche de visualiser le 2e onglet. Je voudrai pouvoir cliquer
dessus pour visualiser, sans activer. Que dois je rajouter ?

Merci !
Sandrine




Peut être qu'il est possible d'ajouter oCtrl.ControlType<> type onglet
dans le test ?

On 18 juin, 08:15, Fabien wrote:
s.jean a écrit :



super, ça marche ! merci encore !
Sandrine
On 17 juin, 16:48, Fabien wrote:
Ben la même chose ;-)
Dans l'ideal tu fait
Private Sub Form_Current()
Active_controle
End Sub
Private Sub Cocher35_afterupdate()
Active_Controle
End sub
Private Sub Active_Controle()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<>acLabel) Then
oCtrl.Enabled = Not(Cocher35 = -1)
End If
Next
End Sub
et voilou !
s.jean a écrit :
Bonjour,
Et que dois je rajouter pour que lorsque je place ce code sur
afterupdate de cocher35, les champs se réactivent si ils sont
désactivés ...
Merci de votre patience !
Sandrine
On 17 juin, 16:00, Fabien wrote:
Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
Eric a écrit :
re,
Là encore, si je peux, je virerai la parenthèse ouvrante sur la ligne du
If ou alors j'en rajouterai une fermante avant le Then
Pour une question d'équilibre ;-)
Ps: oui, je sais, c'est Michel l'instigateur
Fabien a écrit :
Et plus encore ;-)
Private Sub Form_Current()
> Dim oCtrl As control
> For Each oCtrl In Me.Controls
> If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
> oCtrl.Enabled = Not(Cocher35 = -1)
> End If
> Next
> End Sub
Michel_D a écrit :
Bonjour,
Voici une variante.
Private Sub Form_Current()
Dim oCtrl As control
For Each oCtrl In Me.Controls
If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel Then
If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub
"s.jean" a écrit dans le message de
news:
Bonjour,
Je pense également que ça bugue sur
moncontrol.Enable = Me.Cocher35
peut être parce que enable est de type vrai/faux et cocher35 de type
0/-1 (oui/non).
Si je mets ce code sur l'activation et l'afterupdate de cocher35 ça
marche :
Private Sub Form_Current()
Dim moncontrol As control
For Each moncontrol In Me.Controls
If (moncontrol.Name <> "Cocher35" And moncontrol.ControlType
<> acLabel And Cocher35 = -1) Then
moncontrol.Enabled = False
Else
If (moncontrol.Name <> "Cocher35" And
moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
moncontrol.Enabled = True
End If
End If
Next
End Sub
Peut-on simplifier ce code ?
Merci
Sandrine
On 17 juin, 12:46, Eric wrote:
Fabien a écrit :
s.jean a écrit :
Bonjour,
J'ai donc mis le code suivant sur l'évènement activation du
formulaire :
Private Sub Form_Current()
Dim moncontrol As Control
For Each moncontrol In Me.Controls
If moncontrol.Name <> "Cocher35" Then
moncontrol.Enable = Me.Cocher35
End If
Next
End Sub
Quand j'ouvre le formulaire j'ai un message Propriété ou méthode non
gérée par cet objet.
D'où vient l'erreur ?


Salut,
Cela provient du fait que certain controle ne possedent pas la
propriete
enable. (les etiquettes par exemple)
Il faudrait donc creuser pour savoir comment connaitre la nature du
controle ou, mais c'est pas beau, mettre un On error resume next au
début du code.


Bonjour,
En plus, je pense qu'il faut mettre EnableD et non Enable
Qu'en pensez-vous ?
--
A+
Erichttp://www.mpfa.info/
Archives
:http://groups.google.fr/group/microsoft.public.fr.access?hl=fr-
Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -








- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -




- Afficher le texte des messages précédents -




De rien :-)
Merci a toi pour le retour et bonne continuation- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -





Avatar
s.jean
c'est bon ! parfait !

J'ai posté un nouveau message au sujet de mes onglets justement ...

Merci !

Sandrine



On 18 juin, 09:42, Fabien wrote:
s.jean a écrit :

> Bonjour,

> j'ai besoin d'un petit complément ....

> sur mon formulaire j'ai 2 onglets. Le fait que tout soit désactivé
> m'empeche de visualiser le 2e onglet. Je voudrai pouvoir cliquer
> dessus pour visualiser, sans activer. Que dois je rajouter ?

> Merci !
> Sandrine

Peut être qu'il est possible d'ajouter oCtrl.ControlType<> type onglet
dans le test ?



> On 18 juin, 08:15, Fabien wrote:
>> s.jean a écrit :

>>> super, ça marche ! merci encore !
>>> Sandrine
>>> On 17 juin, 16:48, Fabien wrote:
>>>> Ben la même chose ;-)
>>>> Dans l'ideal tu fait
>>>> Private Sub Form_Current()
>>>>         Active_controle
>>>> End Sub
>>>> Private Sub Cocher35_afterupdate()
>>>>         Active_Controle
>>>> End sub
>>>> Private Sub Active_Controle()
>>>> Dim oCtrl As control
>>>>    For Each oCtrl In Me.Controls
>>>>         If (oCtrl.Name<>"Cocher35") And (oCtrl.ControlType<> acLabel) Then
>>>>           oCtrl.Enabled = Not(Cocher35 = -1)
>>>>     End If
>>>>    Next
>>>> End Sub
>>>> et voilou !
>>>> s.jean a écrit :
>>>>> Bonjour,
>>>>> Et que dois je rajouter pour que lorsque je place ce code sur
>>>>> afterupdate de cocher35, les champs se réactivent si ils sont
>>>>> désactivés ...
>>>>> Merci de votre patience !
>>>>> Sandrine
>>>>> On 17 juin, 16:00, Fabien wrote:
>>>>>> Je suis sur que c'est juste pour voir qui suit dans la salle ;-)
>>>>>> Eric a écrit :
>>>>>>> re,
>>>>>>> Là encore, si je peux, je virerai la parenthèse ouvrante sur la ligne du
>>>>>>> If ou alors j'en rajouterai une fermante avant le Then
>>>>>>> Pour une question d'équilibre ;-)
>>>>>>> Ps: oui, je sais, c'est Michel l'instigateur
>>>>>>> Fabien a écrit :
>>>>>>>> Et plus encore ;-)
>>>>>>>> Private Sub Form_Current()
>>>>>>>>  > Dim oCtrl As control
>>>>>>>>  >  For Each oCtrl In Me.Controls
>>>>>>>>  >   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLab el Then
>>>>>>>>  >         oCtrl.Enabled = Not(Cocher35 = -1)
>>>>>>>>  >   End If
>>>>>>>>  >  Next
>>>>>>>>  > End Sub
>>>>>>>> Michel_D a écrit :
>>>>>>>>> Bonjour,
>>>>>>>>> Voici une variante.
>>>>>>>>> Private Sub Form_Current()
>>>>>>>>> Dim oCtrl As control
>>>>>>>>>  For Each oCtrl In Me.Controls
>>>>>>>>>   If (oCtrl.Name<>"Cocher35" And oCtrl.ControlType<>acLabel T hen
>>>>>>>>>    If Cocher35 = -1 Then
>>>>>>>>>     oCtrl.Enabled = False
>>>>>>>>>    Else
>>>>>>>>>     oCtrl.Enabled = True
>>>>>>>>>    End If
>>>>>>>>>   End If
>>>>>>>>>  Next
>>>>>>>>> End Sub
>>>>>>>>> "s.jean" a écrit dans le message de
>>>>>>>>>news: s.com...
>>>>>>>>> Bonjour,
>>>>>>>>> Je pense également que ça bugue sur
>>>>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>>>>> peut être parce que enable est de type vrai/faux et cocher35 de type
>>>>>>>>> 0/-1 (oui/non).
>>>>>>>>> Si je mets ce code sur l'activation et l'afterupdate de cocher3 5 ça
>>>>>>>>> marche :
>>>>>>>>> Private Sub Form_Current()
>>>>>>>>> Dim moncontrol As control
>>>>>>>>>      For Each moncontrol In Me.Controls
>>>>>>>>>          If (moncontrol.Name <> "Cocher35" And moncon trol.ControlType
>>>>>>>>> <> acLabel And Cocher35 = -1) Then
>>>>>>>>>                 moncontrol.Enabled = False
>>>>>>>>>                 Else
>>>>>>>>>                 If (moncontrol.Name <> "Cocher3 5" And
>>>>>>>>> moncontrol.ControlType <> acLabel And Cocher35 = 0) Then
>>>>>>>>>                 moncontrol.Enabled = True
>>>>>>>>>                 End If
>>>>>>>>>                 End If
>>>>>>>>>      Next
>>>>>>>>> End Sub
>>>>>>>>> Peut-on simplifier ce code ?
>>>>>>>>> Merci
>>>>>>>>> Sandrine
>>>>>>>>> On 17 juin, 12:46, Eric wrote:
>>>>>>>>>> Fabien a écrit :
>>>>>>>>>>> s.jean a écrit :
>>>>>>>>>>>> Bonjour,
>>>>>>>>>>>> J'ai donc mis le code suivant sur l'évènement activation du
>>>>>>>>>>>> formulaire :
>>>>>>>>>>>> Private Sub Form_Current()
>>>>>>>>>>>> Dim moncontrol As Control
>>>>>>>>>>>> For Each moncontrol In Me.Controls
>>>>>>>>>>>> If moncontrol.Name <> "Cocher35" Then
>>>>>>>>>>>> moncontrol.Enable = Me.Cocher35
>>>>>>>>>>>> End If
>>>>>>>>>>>> Next
>>>>>>>>>>>> End Sub
>>>>>>>>>>>> Quand j'ouvre le formulaire j'ai un message Propriété ou méthode non
>>>>>>>>>>>> gérée par cet objet.
>>>>>>>>>>>> D'où vient l'erreur ?
>>>>>>>>>>> Salut,
>>>>>>>>>>> Cela provient du fait que certain controle ne possedent pas l a
>>>>>>>>>>> propriete
>>>>>>>>>>> enable. (les etiquettes par exemple)
>>>>>>>>>>> Il faudrait donc creuser pour savoir comment connaitre la nat ure du
>>>>>>>>>>> controle ou, mais c'est pas beau, mettre un On error resume n ext au
>>>>>>>>>>> début du code.
>>>>>>>>>> Bonjour,
>>>>>>>>>> En plus, je pense qu'il faut mettre EnableD et non Enable
>>>>>>>>>> Qu'en pensez-vous ?
>>>>>>>>>> --
>>>>>>>>>> A+
>>>>>>>>>> Erichttp://www.mpfa.info/
>>>>>>>>>> Archives
>>>>>>>>>> :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr-
>>>>>>>>>> Masquer le texte des messages précédents -
>>>>>>>>>> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
>>>>>> - Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
>>>> - Afficher le texte des messages précédents -
>> De rien :-)
>> Merci a toi pour le retour et bonne continuation- Masquer le texte des messages précédents -

>> - Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -

- Afficher le texte des messages précédents -


1 2