transmettre un objet "zone de liste" dans une fonction

Le
Bonjour,

J'essaye de crer une procdure qui prend en argument une
zone de liste :

Sub deSelectionneTout(lst As ListBox)
For i = 0 To lst.ListCount - 1
lst.Selected(i) = False
Next
End Sub

cette procdure est appele de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access gnre une erreur ("erreur
d'execution '424' : objet requis"). En
fait "lst_intervenants" correspond la valeur de
l'lment slectionn dans la liste mais pas tout
l'objet lui mme
Comment faire pour transmettre la procdure
l'intgralit de l'objet "zone de liste" ??

Merci
Jrme
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre CFI [mvp]
Le #5077901
bonjour
si cette sub est dans un module, c'est le form qu'il faut passer
Sub deSelectionneTout(F As Form)
For i = 0 To F.lst_intervenants.ListCount - 1
F.lst_intervenants.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte : dans le form ou est la liste
call deSelectionneTout(Me)


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
Bonjour,

J'essaye de créer une procédure qui prend en argument une
zone de liste :

Sub deSelectionneTout(lst As ListBox)
For i = 0 To lst.ListCount - 1
lst.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access génére une erreur ("erreur
d'execution '424' : objet requis"). En
fait "lst_intervenants" correspond à la valeur de
l'élément sélectionné dans la liste mais pas à tout
l'objet lui même...
Comment faire pour transmettre à la procédure
l'intégralité de l'objet "zone de liste" ??

Merci
Jérôme
Pierre CFI [mvp]
Le #5077891
..../....
ou passer le nom du form et le nom de la liste

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
Bonjour,

J'essaye de créer une procédure qui prend en argument une
zone de liste :

Sub deSelectionneTout(lst As ListBox)
For i = 0 To lst.ListCount - 1
lst.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access génére une erreur ("erreur
d'execution '424' : objet requis"). En
fait "lst_intervenants" correspond à la valeur de
l'élément sélectionné dans la liste mais pas à tout
l'objet lui même...
Comment faire pour transmettre à la procédure
l'intégralité de l'objet "zone de liste" ??

Merci
Jérôme
Raymond [mvp]
Le #5077871
Bonjour.

pour vider une liste :

Private Sub Commande0_Click()
deSelectionneTout Me.lst_intervenants ' (nom de la liste qui dans ce cas
sera pris comme objet)
End Sub

Sub deSelectionneTout(lst As ListBox)
Dim I As Variant
For Each I In lst .ItemsSelected
lst .Selected(I) = False
Next I
End Sub

ou

Sub deSelectionneTout(lst As ListBox)
Dim i As Integer
For i = 0 To Liste.ListCount - 1
Liste.Selected(i) = False
Next
End Sub


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


news:9bd101c4341a$60621050$
Bonjour,

J'essaye de créer une procédure qui prend en argument une
zone de liste :

Sub deSelectionneTout(lst As ListBox)
For i = 0 To lst.ListCount - 1
lst.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access génére une erreur ("erreur
d'execution '424' : objet requis"). En
fait "lst_intervenants" correspond à la valeur de
l'élément sélectionné dans la liste mais pas à tout
l'objet lui même...
Comment faire pour transmettre à la procédure
l'intégralité de l'objet "zone de liste" ??

Merci
Jérôme
Raymond [mvp]
Le #5077851
Bonjour Pierre;

un truc extraordinaire:

n'ayant pas précisé que la sub devait être dans le code du formulaire, je me
dis : Pierre a raison , faut passer la sub dans un module standard et je
remplace "sub" par public function et je transfère le tout dans le module.
je me dis encore, quelles est l'erreur exact qu'il va me sortir vu qu'il ne
connait plus l'objet formulaire ?
j'exécute la function: résultat: la liste est vidée comme si la fonction
était sur le formulaire, pas d'erreur.
ce qui tendrait à confirmer que le passage d'un objet suffit à une fonction
pour le retrouver sans lui indiquer l'objet parent. ce qui encore peut
ouvrir des voies nouvelles à explorer en ce qui concerne les modules et les
fonctions avec des objets de formulaires. Qu'en penses-tu ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierre CFI [mvp]" news:
..../....
ou passer le nom du form et le nom de la liste

--
Pierre CFI


Jérôme W.
Le #5371401
Ca marche en faisant :

call deSelectionneTout(me.lst_intervenants)


sub deSelectionneTout (Byref lst as ListBox)
...
end sub


Jérôme

"Pierre CFI [mvp]" news:
bonjour
si cette sub est dans un module, c'est le form qu'il faut passer
Sub deSelectionneTout(F As Form)
For i = 0 To F.lst_intervenants.ListCount - 1
F.lst_intervenants.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte : dans le form ou est la liste
call deSelectionneTout(Me)


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
news:9bd101c4341a$60621050$

Bonjour,

J'essaye de créer une procédure qui prend en argument une
zone de liste :

Sub deSelectionneTout(lst As ListBox)
For i = 0 To lst.ListCount - 1
lst.Selected(i) = False
Next
End Sub

cette procédure est appelée de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access génére une erreur ("erreur
d'execution '424' : objet requis"). En
fait "lst_intervenants" correspond à la valeur de
l'élément sélectionné dans la liste mais pas à tout
l'objet lui même...
Comment faire pour transmettre à la procédure
l'intégralité de l'objet "zone de liste" ??

Merci
Jérôme




Publicité
Poster une réponse
Anonyme