Passage d'un Filelistbox dans une procédure

Résolu
firens Messages postés 68 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 août 2008 - 27 janv. 2008 à 13:19
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 29 janv. 2008 à 02:39
    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

firens Messages postés 68 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 août 2008
27 janv. 2008 à 17:40
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
3
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
27 janv. 2008 à 16:25
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!
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 janv. 2008 à 16:28
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)
0
firens Messages postés 68 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 août 2008
27 janv. 2008 à 16:34
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
firens Messages postés 68 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 août 2008
27 janv. 2008 à 16:37
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.....
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
27 janv. 2008 à 18:50
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!
0
firens Messages postés 68 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 24 août 2008
27 janv. 2008 à 18:56
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 janv. 2008 à 02:39
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
0
Rejoignez-nous