OVH Cloud OVH Cloud

VBA - Un objet comme argument

3 réponses
Avatar
Patrick
Bonjour,

Dans un UserForm, j'ai créé une fonction dont l'argument est deux ListBoxes,
comme ceci :

Private Sub AjoutListe(ByVal ListeDepart as ListBox, ByVal ListeArrivee as
ListBox)

Comme le UF contient plusieurs ListBoxes auxquelles s'appliquent le même
traitement, cela évitera de répéter plusieurs fois le même code. Et l'intérêt
de faire comme cela est que, ensuite, je peux utiliser les propriétés de ces
objects ListBox.

Comme il y a des erreurs, je pensais mettre 2 variables dans la procédures,
aussi avec le type ListBox et je les définis au début de la procédure comme
ceci :

Private Sub AjoutListe(ByVal ListeDepart as String, ByVal ListeArrivee as
String)
Dim lboDepart As Object
Dim lboArrivee As Object
'
Set lboDepart = Me.Controls(ListeDepart)
Set lboArrivee = Me.Controls(ListeArrivee)

Mais cela ne fonctionne jamais.

Auriez-vous une idée ?

Merci pour votre aide.

--
Patrick

3 réponses

Avatar
Patrick
En fait, si je déclare les listes comem ceci, cela fonctionne :
Dim lboDepart As Object
Dim lboArrivee As Object

Mais je n'ai pas accès à leurs propriétés directement. Il faut que je les
connaisse pour les taper à la main.

Mais si je les déclare comme ceci, cela ne fonctionne pas ;
Dim lboDepart As ListBox
Dim lboArrivee As ListBox

Merci.

--
Patrick


"Patrick" wrote:

Bonjour,

Dans un UserForm, j'ai créé une fonction dont l'argument est deux ListBoxes,
comme ceci :

Private Sub AjoutListe(ByVal ListeDepart as ListBox, ByVal ListeArrivee as
ListBox)

Comme le UF contient plusieurs ListBoxes auxquelles s'appliquent le même
traitement, cela évitera de répéter plusieurs fois le même code. Et l'intérêt
de faire comme cela est que, ensuite, je peux utiliser les propriétés de ces
objects ListBox.

Comme il y a des erreurs, je pensais mettre 2 variables dans la procédures,
aussi avec le type ListBox et je les définis au début de la procédure comme
ceci :

Private Sub AjoutListe(ByVal ListeDepart as String, ByVal ListeArrivee as
String)
Dim lboDepart As Object
Dim lboArrivee As Object
'
Set lboDepart = Me.Controls(ListeDepart)
Set lboArrivee = Me.Controls(ListeArrivee)

Mais cela ne fonctionne jamais.

Auriez-vous une idée ?

Merci pour votre aide.

--
Patrick


Avatar
anonymousA
Bonjour

si tu écrivais as MSFORMS.Listbox ca devrait fonctionner

A+

Patrick wrote:
En fait, si je déclare les listes comem ceci, cela fonctionne :
Dim lboDepart As Object
Dim lboArrivee As Object

Mais je n'ai pas accès à leurs propriétés directement. Il faut qu e je les
connaisse pour les taper à la main.

Mais si je les déclare comme ceci, cela ne fonctionne pas ;
Dim lboDepart As ListBox
Dim lboArrivee As ListBox

Merci.

--
Patrick


"Patrick" wrote:

Bonjour,

Dans un UserForm, j'ai créé une fonction dont l'argument est deux L istBoxes,
comme ceci :

Private Sub AjoutListe(ByVal ListeDepart as ListBox, ByVal ListeArrivee as
ListBox)

Comme le UF contient plusieurs ListBoxes auxquelles s'appliquent le m ême
traitement, cela évitera de répéter plusieurs fois le même code . Et l'intérêt
de faire comme cela est que, ensuite, je peux utiliser les propriét és de ces
objects ListBox.

Comme il y a des erreurs, je pensais mettre 2 variables dans la procé dures,
aussi avec le type ListBox et je les définis au début de la procé dure comme
ceci :

Private Sub AjoutListe(ByVal ListeDepart as String, ByVal ListeArrivee as
String)
Dim lboDepart As Object
Dim lboArrivee As Object
'
Set lboDepart = Me.Controls(ListeDepart)
Set lboArrivee = Me.Controls(ListeArrivee)

Mais cela ne fonctionne jamais.

Auriez-vous une idée ?

Merci pour votre aide.

--
Patrick




Avatar
Patrick
Merci, c'est tout à fait cela.

--
Patrick


"anonymousA" wrote:

Bonjour

si tu écrivais as MSFORMS.Listbox ca devrait fonctionner

A+

Patrick wrote:
En fait, si je déclare les listes comem ceci, cela fonctionne :
Dim lboDepart As Object
Dim lboArrivee As Object

Mais je n'ai pas accès à leurs propriétés directement. Il faut que je les
connaisse pour les taper à la main.

Mais si je les déclare comme ceci, cela ne fonctionne pas ;
Dim lboDepart As ListBox
Dim lboArrivee As ListBox

Merci.

--
Patrick


"Patrick" wrote:

Bonjour,

Dans un UserForm, j'ai créé une fonction dont l'argument est deux ListBoxes,
comme ceci :

Private Sub AjoutListe(ByVal ListeDepart as ListBox, ByVal ListeArrivee as
ListBox)

Comme le UF contient plusieurs ListBoxes auxquelles s'appliquent le même
traitement, cela évitera de répéter plusieurs fois le même code.. Et l'intérêt
de faire comme cela est que, ensuite, je peux utiliser les propriétés de ces
objects ListBox.

Comme il y a des erreurs, je pensais mettre 2 variables dans la procédures,
aussi avec le type ListBox et je les définis au début de la procédure comme
ceci :

Private Sub AjoutListe(ByVal ListeDepart as String, ByVal ListeArrivee as
String)
Dim lboDepart As Object
Dim lboArrivee As Object
'
Set lboDepart = Me.Controls(ListeDepart)
Set lboArrivee = Me.Controls(ListeArrivee)

Mais cela ne fonctionne jamais.

Auriez-vous une idée ?

Merci pour votre aide.

--
Patrick