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

transmettre un objet "zone de liste" dans une fonction

5 réponses
Avatar
Bonjour,

J'essaye de cr=E9er une proc=E9dure qui prend en argument une=20
zone de liste :

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

cette proc=E9dure est appel=E9e de la sorte :
call deSelectionneTout(lst_intervenants)

malheureusement Access g=E9n=E9re une erreur ("erreur=20
d'execution '424' : objet requis"). En=20
fait "lst_intervenants" correspond =E0 la valeur de=20
l'=E9l=E9ment s=E9lectionn=E9 dans la liste mais pas =E0 tout=20
l'objet lui m=EAme...
Comment faire pour transmettre =E0 la proc=E9dure=20
l'int=E9gralit=E9 de l'objet "zone de liste" ??

Merci
J=E9r=F4me

5 réponses

Avatar
Pierre CFI [mvp]
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
a écrit dans le message de 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
Avatar
Pierre CFI [mvp]
..../....
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
a écrit dans le message de 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
Avatar
Raymond [mvp]
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


a écrit dans le message de
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
Avatar
Raymond [mvp]
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]" a écrit dans le message de
news:
..../....
ou passer le nom du form et le nom de la liste

--
Pierre CFI


Avatar
Jérôme W.
Ca marche en faisant :

call deSelectionneTout(me.lst_intervenants)


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


Jérôme

"Pierre CFI [mvp]" a écrit dans le message de
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
a écrit dans le message de
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