Passage d'un Filelistbox dans une procédure

[Résolu]
Signaler
Messages postés
68
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 août 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
    Bonjour,

sauriez-vous m'indiquer comment envoyer un FileListBox et un ListBox à travers une procédure :

Sub procedure_test(...je récupère mon filelistbox et mon listbox)

et l'appel :

procedure_test(file1 ou list1 )

j'ai testé mais ca me renvoie un message d'erreur car je ne peux pas envoyer que le file1 ou list1 sans avoir mis par exemple :

list1.list(i) etc....

Merci par avance

8 réponses

Messages postés
68
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 août 2008

Dim Fichier As String

listFile.Clear
Fichier = Dir$(Dir1.Path & "", vbDirectory)
i = 0
While Fichier <> ""
    If Fichier <> "." And Fichier <> ".." Then
        listFile.AddItem (Fichier)
        i = i + 1
    End If
    Fichier = Dir$
Wend

Voila le code pour ajouter les fichiers d'un répertoire donné dans une listbox

ça peut tjr aider
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

hmmm au lieu d'envoyer le filelist tout entier, tu peux pas faire une boucle et envoyer élément par élément dans une procédure qui prend un élément de la liste, et ensuite faire appel à une fonction qui analyse le tout? (ie: qui analyse les résultats donnés par tous les appels successifs sur chaque élément de ta filelist?)

rien ne t'empêche par exemple de faire un truc genre

Private Sub procedure_test(i as integer)  'Le i disant à ta procédure quelle filelist lire
if i=1 then
   'La tu appelles plusieurs fois en boucle une fonction qui t'analyse ta liste élément par élément
else if i=2
....
endif
'Et ici tu mets la fonction que doit faire ton sub procedure_test
end sub

 Pourapprendretoujoursplus!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Par pitié, la prochaine fois, relis toi avant de valider ta question : Tes phrases sont incompléhensibles.
Si tu as un message d'erreur, ne trouverais-tu pas normal de nous dire lequel ?

Dans ta denière ligne d'exemple, List1.List(i) n'est pas une ListBox mais le contenu d'une ListBox, donc une chaine (String).
Essaye vraiment d'être plus clair avec des copier coller de tes vraies déclarations et lignes qui posent problème.

Si tu déclares voiloir passer une FileListBox et une ListBox, il faudra bien sûr lui fournir les deux infos au moment de l'appel.
Tu peux éventuellement déclarer la ListBox en Optional, mais dans le code de ta procédure, ça va être délicat de tester si le pramètre est fourni (ou pas) au moment d'utiliser une des fonctions/propriétés de l'objet.

Déclaration :
   Private Sub Test(ByRef myFileListBox As FileListBox, _
                             ByRef myListBox As ListBox)

Utilisation :
   Call Test (FileListBox1, ListBox1)
et dans le code de la Sub, il faut bien sûr faire référence à myFileListBox et myListBox, exemple :
   myListBox.Add "mon item"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
68
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 août 2008

Merci pour vos réponses,

en fait dans mon cas j'ai créer une procédure qui permet de stocker les valeurs d'une sélection multiple dans un tableau... Je me suis juste rendu compte que d'utiliser une listbox ou une filelistbox c'était pareil au niveau des méthodes utilisée (étant donné que FileListbox est une classe héritant des méthodes de ListBox).

A présent le but c'est que je n'ai pas besoin de dire à la procédure "Voila maintenant tu fais le tri sur une listbox" ou "Voila maintenant tu fais le tri sur un filelistbox".

En bref, ma procédure je lui envoie simplement soit le Filelistbox ou le Listbox dans une variable ou objet et après elle traite tout ça pour pouvoir utiliser les méthodes ListCount ou Selected par exemple sans que je doive rajouter une tonne de cheni à l'appel de la procédure....

J'espère que j'ai réussi à me faire comprendre
Messages postés
68
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 août 2008

Bon perso maintenant que j'y pense.....je peux tout aussi bien ne pas
utiliser la fileListBox pour obtenir les fichiers contenu dans un
dossier de mon disque mais faire une listbox qui sortira la même
chose....

Le soucis c'est qu'alors...comment récupérer les fichiers à partir du DirListBox.....
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Lol c'était ça que tu voulais?
Effectivement, je rejoins Jack sur un point: tes questions étaient incompréhensibles...
Comme tes questions étaient posées, ça faisait genre tu voulais faire une fonction qui prenait comme argument une filelist et une listbox... Rien à voir avec mettre la liste des fichiers dans un répertoire dans une listbox lol...

 Pourapprendretoujoursplus!
Messages postés
68
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
24 août 2008

non non pas du tout...le but était de pouvoir gérer avec une variable autant l'envoi de la listbox que le filebox...

trucmuch(variable)

avec variable contenant soit ce que j'avais dans une listbox soit dans une filelistbox

bref....à présent j'ai de toute manière trouvé ce que je voulais.

Merci quand même
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Peut-être aurais-tu pu essayer de passer un Object en paramètre ?
Sub MaSub(MonControle As Object)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI