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

limiter a liste

7 réponses
Avatar
le méruvien
Bonjour a tous,
J'ai un formulaire avec deux cases à cocher, "neuf" et "occasion" et une
liste deroulante, qui me donne differents materiel limité a la liste.
Je voudrais limiter a la liste si la case "neuf" est cochée, et ne pas
limiter a la liste si c'est la case "occasion" qui est cochée.
Comment je peut ecrire ça en code?
merci

--


Roger
http://le-meruvien.skynetblogs.be/

7 réponses

Avatar
Gloops
le méruvien a écrit, le 16/05/2007 18:17 :
Bonjour a tous,
J'ai un formulaire avec deux cases à cocher, "neuf" et "occasion" et une
liste deroulante, qui me donne differents materiel limité a la liste.
Je voudrais limiter a la liste si la case "neuf" est cochée, et ne pa s
limiter a la liste si c'est la case "occasion" qui est cochée.
Comment je peut ecrire ça en code?
merci

Bonjour,


Je verrais bien quelque chose comme

Private Sub Occasion_Change()
modList.LimitToList = Occasion.Value
End Sub

mais je dois bien dire que je n'ai rien testé ...
Je ne me rends pas bien compte si il faut (un Refresh ou) un Requery
quelque part.

Avatar
Gloops
Gloops a écrit, le 16/05/2007 20:27 :
le méruvien a écrit, le 16/05/2007 18:17 :
Bonjour a tous,
J'ai un formulaire avec deux cases à cocher, "neuf" et "occasion" et
une liste deroulante, qui me donne differents materiel limité a la l iste.
Je voudrais limiter a la liste si la case "neuf" est cochée, et ne p as
limiter a la liste si c'est la case "occasion" qui est cochée.
Comment je peut ecrire ça en code?
merci




Je suis allé un peu vite en besogne, moi.
J'ai dû être distrait par quelque chose à ce moment, j'ai répondu comme
si il n'y avait qu'une case à cocher, Occasion, et que la liste devait
être limitée seulement si Occasion est cochée.

En fait, c'est si "neuf" est cochée, qu'on limite la liste ?
Il faut mettre modList.LimitToList = Neuf.Value sinon on risque
d'obtenir le résultat inverse de celui souhaité.

Maintenant, je voudrais m'assurer que j'ai bien lu.

Les cases ne doivent pas être cochées simultanément, c'est ça ?
C'est l'une ou l'autre ?
Dans ce cas ce ne sont pas des cases à cocher, mais des boutons-radio
dans un groupe d'options.

Si le groupe d'options s'appelle Cadre0, on testera la valeur de Cadre0,
et on verra dans quel cas la liste doit être verrouillée. La mise en
œuvre se fait comme ci-dessus, dans l'événement de modification du
contrôle qui sert de référence, dans ce cas Cadre0.


Avatar
le méruvien
Bonjour Gloops, oui c'est une case d'option, oui ou non


"Gloops" a écrit dans le message de news:
O4907S$
Gloops a écrit, le 16/05/2007 20:27 :
le méruvien a écrit, le 16/05/2007 18:17 :
Bonjour a tous,
J'ai un formulaire avec deux cases à cocher, "neuf" et "occasion" et une
liste deroulante, qui me donne differents materiel limité a la liste.
Je voudrais limiter a la liste si la case "neuf" est cochée, et ne pas
limiter a la liste si c'est la case "occasion" qui est cochée.
Comment je peut ecrire ça en code?
merci




Je suis allé un peu vite en besogne, moi.
J'ai dû être distrait par quelque chose à ce moment, j'ai répondu comme
si il n'y avait qu'une case à cocher, Occasion, et que la liste devait
être limitée seulement si Occasion est cochée.

En fait, c'est si "neuf" est cochée, qu'on limite la liste ?
Il faut mettre modList.LimitToList = Neuf.Value sinon on risque
d'obtenir le résultat inverse de celui souhaité.

Maintenant, je voudrais m'assurer que j'ai bien lu.

Les cases ne doivent pas être cochées simultanément, c'est ça ?
C'est l'une ou l'autre ?
Dans ce cas ce ne sont pas des cases à cocher, mais des boutons-radio
dans un groupe d'options.

Si le groupe d'options s'appelle Cadre0, on testera la valeur de Cadre0,
et on verra dans quel cas la liste doit être verrouillée. La mise en
œuvre se fait comme ci-dessus, dans l'événement de modification du
contrôle qui sert de référence, dans ce cas Cadre0.


Avatar
le méruvien
J'ai fait cette procedure sur clic du groupe d'option, mais ça marche pas il
me dis "objet requis"
Private Sub Neuf_occasion_Click()
If Me![neuf/occasion] = 2 Then
modlist.limittdlist = Me![neuf/occasion].Value
End If
End Sub



"Gloops" a écrit dans le message de news:
O4907S$
Gloops a écrit, le 16/05/2007 20:27 :
le méruvien a écrit, le 16/05/2007 18:17 :
Bonjour a tous,
J'ai un formulaire avec deux cases à cocher, "neuf" et "occasion" et une
liste deroulante, qui me donne differents materiel limité a la liste.
Je voudrais limiter a la liste si la case "neuf" est cochée, et ne pas
limiter a la liste si c'est la case "occasion" qui est cochée.
Comment je peut ecrire ça en code?
merci




Je suis allé un peu vite en besogne, moi.
J'ai dû être distrait par quelque chose à ce moment, j'ai répondu comme
si il n'y avait qu'une case à cocher, Occasion, et que la liste devait
être limitée seulement si Occasion est cochée.

En fait, c'est si "neuf" est cochée, qu'on limite la liste ?
Il faut mettre modList.LimitToList = Neuf.Value sinon on risque
d'obtenir le résultat inverse de celui souhaité.

Maintenant, je voudrais m'assurer que j'ai bien lu.

Les cases ne doivent pas être cochées simultanément, c'est ça ?
C'est l'une ou l'autre ?
Dans ce cas ce ne sont pas des cases à cocher, mais des boutons-radio
dans un groupe d'options.

Si le groupe d'options s'appelle Cadre0, on testera la valeur de Cadre0,
et on verra dans quel cas la liste doit être verrouillée. La mise en
œuvre se fait comme ci-dessus, dans l'événement de modification du
contrôle qui sert de référence, dans ce cas Cadre0.


Avatar
Gloops
le méruvien a écrit, le 17/05/2007 10:58 :
J'ai fait cette procedure sur clic du groupe d'option, mais ça marche pas il
me dis "objet requis"
Private Sub Neuf_occasion_Click()
If Me![neuf/occasion] = 2 Then
modlist.limittdlist = Me![neuf/occasion].Value
End If
End Sub



ça sent la faute de frappe sur le nom d'un contrôle.

Vérifie :

For N = 0 to Forms(nomformulaire).Controls.Count - 1
Debug.Print Forms(nomformulaire).Controls(N).Name
Next

et vérifie bien surtout comment s'écrivent modlist et neuf/occasion
(astreignant, un nom de contrôle avec une barre oblique).

Après, tu auras une erreur 2455 parce que tu as écrit limittdlist à la
place de LimitToList.

Par ailleurs, je ne suis pas certain qu'on puisse donner la valeur 2 à
la propriété LimitToList. Vrai ou Faux feraient mieux l'affaire.

If Me![neuf/occasion] = 2 Then
modlist.LimitToList = True
End If

limitera la liste si neuf/occasion vaut 2, ne changera rien sinon,

ou encore

modList.LimitToList = ([neuf/occasion] = 2)

ne limitera la liste que si neuf/occasion vaut 2, l'élargira sinon.

Avatar
le méruvien
bon, finalement, pourait-tu me dire clairement ce que je dois mettre, car ni
l'une ni lautre de tes formules fonctionne, j'ai toujours l'erreur "objet
requis"

Private Sub Neuf_occasion_Click()
' If Me![neuf/occasion] = 2 Then
' modlist.LimitToList = True
' Else
' modlist.LimitToList = False
' End If
modList.LimitToList = ([neuf/occasion] = 2)
End Sub




"Gloops" a écrit dans le message de news:
%
le méruvien a écrit, le 17/05/2007 10:58 :
J'ai fait cette procedure sur clic du groupe d'option, mais ça marche pas
il me dis "objet requis"
Private Sub Neuf_occasion_Click()
If Me![neuf/occasion] = 2 Then
modlist.limittdlist = Me![neuf/occasion].Value
End If
End Sub



ça sent la faute de frappe sur le nom d'un contrôle.

Vérifie :

For N = 0 to Forms(nomformulaire).Controls.Count - 1
Debug.Print Forms(nomformulaire).Controls(N).Name
Next

et vérifie bien surtout comment s'écrivent modlist et neuf/occasion
(astreignant, un nom de contrôle avec une barre oblique).

Après, tu auras une erreur 2455 parce que tu as écrit limittdlist à la
place de LimitToList.

Par ailleurs, je ne suis pas certain qu'on puisse donner la valeur 2 à
la propriété LimitToList. Vrai ou Faux feraient mieux l'affaire.

If Me![neuf/occasion] = 2 Then
modlist.LimitToList = True
End If

limitera la liste si neuf/occasion vaut 2, ne changera rien sinon,

ou encore

modList.LimitToList = ([neuf/occasion] = 2)

ne limitera la liste que si neuf/occasion vaut 2, l'élargira sinon.

Avatar
Gloops
le méruvien a écrit, le 17/05/2007 15:06 :
bon, finalement, pourait-tu me dire clairement ce que je dois mettre, c ar ni
l'une ni lautre de tes formules fonctionne, j'ai toujours l'erreur "obj et
requis"

Private Sub Neuf_occasion_Click()
' If Me![neuf/occasion] = 2 Then
' modlist.LimitToList = True
' Else
' modlist.LimitToList = False
' End If
modList.LimitToList = ([neuf/occasion] = 2)
End Sub



Que donne la liste des contrôles, puisqu'aussi bien j'ai commencé par ça ?

Et lors de la correction syntaxique, où se place la sélection ?
(Tu vois ce que c'est, la correction syntaxique ? Le bouton porte
l'infobulle "compiler les modules chargés".)


Public Sub ListeControles(NomForm As String)
' (le formulaire doit être ouvert)
Dim F As Form
Dim C As Control
Set F = Forms(NomForm)
For N = 0 To F.Controls.Count - 1
Set C = F.Controls(N):
Debug.Print C.Name, C.ControlType
Next
End Sub


(résultat dans la fenêtre d'exécution)