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

Le
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és si la case Cocher35 est cochée, en laissant celle ci
non verouillée pour pouvoir modifier et verouiller / déverouiller.

Quel code puis je utiliser ? j'ai déjà essayé plusieurs codes trouvé=
s
sur ce forum mais en vain

Merci beaucoup
Sandrine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien
Le #7018701
<blockquote class="block0"><br />
Bonjour,<br />
<br />
J'ai un formulaire avec plusieurs champs + un sous-formulaire.<br />
<br />
Je souhaiterai que tous les champs du formulaire et sous-formulaire<br />
soient verouill&eacute;s si la case Cocher35 est coch&eacute;e, en laissant celle ci<br />
non verouill&eacute;e pour pouvoir modifier et verouiller / d&eacute;verouiller.<br />
<br />
Quel code puis je utiliser ? j'ai d&eacute;j&agrave; essay&eacute; plusieurs codes trouv&eacute;s<br />
sur ce forum mais en vain ...<br />
<br />
Merci beaucoup<br />
Sandrine<br />
Salut<br />
</blockquote><br />
Une piste avec un truc du genre pour parcourir les controles<br />
Dim moncontrol As Control<br />
For Each moncontrol In Me.Controls<br />
If moncontrol.Name&lt;&gt;&quot;Cocher35&quot; then<br />
moncontrol.Enable= Me.cocher35 'Ca marche a condition que la<br />
propri&eacute;t&eacute; Enable soit support&eacute;e par le controle<br />
end if<br />
Next<br />
<br />
s.jean
Le #7023961
Bonjour,<br />
<br />
J'ai donc mis le code suivant sur l'&eacute;v&egrave;nement activation du<br />
formulaire :<br />
Private Sub Form_Current()<br />
Dim moncontrol As Control<br />
For Each moncontrol In Me.Controls<br />
If moncontrol.Name &lt;&gt; &quot;Cocher35&quot; Then<br />
moncontrol.Enable = Me.Cocher35<br />
End If<br />
Next<br />
<br />
<br />
End Sub<br />
<br />
<br />
Quand j'ouvre le formulaire j'ai un message Propri&eacute;t&eacute; ou m&eacute;thode non<br />
g&eacute;r&eacute;e par cet objet.<br />
<br />
D'o&ugrave; vient l'erreur ?<br />
<br />
merci<br />
<br />
Sandrine<br />
<br />
On 16 juin, 16:54, Fabien &lt;&gt; wrote:<br />
<blockquote class="block0"><br />
s.jean a &eacute;crit :&gt; Bonjour,<br />
<br />
<blockquote class="block1"><br />
J'ai un formulaire avec plusieurs champs + un sous-formulaire.<br />
<br />
Je souhaiterai que tous les champs du formulaire et sous-formulaire<br />
soient verouill&eacute;s si la case Cocher35 est coch&eacute;e, en laissant celle ci<br />
non verouill&eacute;e pour pouvoir modifier et verouiller / d&eacute;verouiller.<br />
<br />
Quel code puis je utiliser ? j'ai d&eacute;j&agrave; essay&eacute; plusieurs codes trou v&eacute;s<br />
sur ce forum mais en vain ...<br />
<br />
Merci beaucoup<br />
Sandrine<br />
<br />
</blockquote><br />
Salut<br />
Une piste avec un truc du genre pour parcourir les controles<br />
&nbsp; &nbsp; &nbsp;Dim moncontrol AsControl<br />
&nbsp; &nbsp; &nbsp;ForEachmoncontrol In Me.Controls<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If moncontrol.Name&lt;&gt;&quot;Cocher35&quot; then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; moncontrol.Enable= Me.cocher35 'Ca march e a condition que la<br />
propri&eacute;t&eacute;Enablesoit support&eacute;e par le controle<br />
&nbsp; &nbsp; &nbsp; &nbsp; end if<br />
&nbsp; &nbsp; &nbsp;Next<br />
<br />
</blockquote><br />
<br />
Fabien
Le #7024591
<blockquote class="block0"><br />
Bonjour,<br />
<br />
J'ai donc mis le code suivant sur l'&eacute;v&egrave;nement activation du<br />
formulaire :<br />
Private Sub Form_Current()<br />
Dim moncontrol As Control<br />
For Each moncontrol In Me.Controls<br />
If moncontrol.Name &lt;&gt; &quot;Cocher35&quot; Then<br />
moncontrol.Enable = Me.Cocher35<br />
End If<br />
Next<br />
<br />
<br />
End Sub<br />
<br />
<br />
Quand j'ouvre le formulaire j'ai un message Propri&eacute;t&eacute; ou m&eacute;thode non<br />
g&eacute;r&eacute;e par cet objet.<br />
<br />
D'o&ugrave; vient l'erreur ?<br />
<br />
merci<br />
<br />
Sandrine<br />
<br />
On 16 juin, 16:54, Fabien &lt;&gt; wrote:<br />
<blockquote class="block1"><br />
s.jean a &eacute;crit :&gt; Bonjour,<br />
<br />
<blockquote class="block0"><br />
J'ai un formulaire avec plusieurs champs + un sous-formulaire.<br />
Je souhaiterai que tous les champs du formulaire et sous-formulaire<br />
soient verouill&eacute;s si la case Cocher35 est coch&eacute;e, en laissant celle ci<br />
non verouill&eacute;e pour pouvoir modifier et verouiller / d&eacute;verouiller.<br />
Quel code puis je utiliser ? j'ai d&eacute;j&agrave; essay&eacute; plusieurs codes trouv&eacute;s<br />
sur ce forum mais en vain ...<br />
Merci beaucoup<br />
Sandrine<br />
Salut<br />
</blockquote><br />
Une piste avec un truc du genre pour parcourir les controles<br />
Dim moncontrol AsControl<br />
ForEachmoncontrol In Me.Controls<br />
If moncontrol.Name&lt;&gt;&quot;Cocher35&quot; then<br />
moncontrol.Enable= Me.cocher35 'Ca marche a condition que la<br />
propri&eacute;t&eacute;Enablesoit support&eacute;e par le controle<br />
end if<br />
Next<br />
<br />
</blockquote><br />
Salut,<br />
</blockquote><br />
Cela provient du fait que certain controle ne possedent pas la propriete<br />
enable. (les etiquettes par exemple)<br />
Il faudrait donc creuser pour savoir comment connaitre la nature du<br />
controle ou, mais c'est pas beau, mettre un On error resume next au<br />
d&eacute;but du code.<br />
<br />
<br />
<br />
Fabien
Le #7026171
Eric a écrit :
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 ?



Salut Eric
J'en pense que du bien ;-)
s.jean
Le #7026161
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
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 -


Michel_D
Le #7026541
Bonjour,

Voici une variante.

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


"s.jean" 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
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 -


Fabien
Le #7026801
Et plus encore ;-)
Private Sub Form_Current()
> Dim oCtrl As control
> For Each oCtrl In Me.Controls
> If (oCtrl.Name > 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 If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub


"s.jean" 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
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 -





Eric
Le #7027331
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 > 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 If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub


"s.jean" 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
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 -








--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Fabien
Le #7027321
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 > 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 If Cocher35 = -1 Then
oCtrl.Enabled = False
Else
oCtrl.Enabled = True
End If
End If
Next
End Sub


"s.jean" 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
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 -










Publicité
Poster une réponse
Anonyme