Instancier un filelistbox et un dirlistbox sans placer un objet sur une form

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 565 fois - Téléchargée 31 fois

Contenu du snippet

comment utiliser un dirlistbox sans le creer sur une form?
lorsque je lance le code ci dessous (qui devrai me donner la taille d'un repertoire)

j'obtient le message d'erraur suivant
object variable or with bloc variable not set

sur
dire.path = path

et la je suis bloque car je ne sais pas quoi faire... des idee? des solution ?
merci bcp de votre aide

Source / Exemple :


Private Function taillepath(ByVal path As String) As Double
Dim dire As DirListBox
dire.path = path
Dim file As FileListBox
file.path = path
Dim liste As ListBox
liste.Clear
taillepath = 0
Dim i As Integer
'dossier
i = 0
Do While i < dire.ListCount
    liste.AddItem dire.List(i)
    i = i + 1
    Loop
Do While liste.ListCount
    'fichier
    i = 0
    Do While i < File1.ListCount
        taillepath = taillepath + FileLen(File1.path & "\" & File1.List(i))
        i = i + 1
        Loop
    dire.path = liste.List(0)
    file.path = liste.List(0)
    liste.RemoveItem (0)
    i = 0
    Do While i < dire.ListCount
        liste.AddItem dire.List(i)
        i = i + 1
        Loop
    Loop
End Function

Conclusion :


ben heu... ca marche pas... je demande de l'aide qui pourra servir a d'autre personne...

A voir également

Ajouter un commentaire Commentaires
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
9 mai 2005 à 20:55
mecri bcp :-)...
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
4 mai 2005 à 12:13
salut

en ce qui concerne la taille du fichier, c'est du au fait que le long VB est signé, or celui de la fonction ne l'est pas. voici le remede :

Taille=Filelen(fichier)
If Taille < 0 Then Taille = 2 ^ 32 + Taille

++
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
3 mai 2005 à 22:57
ben c que je c pas comment se servir de la fonction dir... etc...
pour la solution au probleme, voici le code qui fonctionne...

Private Function taillepath(ByVal path As String) As Double
On Error Resume Next 'il y a des fichier foireux qui tourne sur le pc
Dim dire As DirListBox
Set dire = Controls.Add("VB.DirListBox", "Dir10")
dire.path = path
Dim file As FileListBox
Set file = Controls.Add("VB.FileListBox", "File10")
file.path = path
Dim liste As ListBox
Set liste = Controls.Add("VB.ListBox", "List10")
liste.Clear
taillepath = 0
Dim i As Integer
i = 0

liste.AddItem path

Do While liste.ListCount
'fichier
dire.path = liste.List(0)
dire.Refresh
file.path = liste.List(0)
file.Refresh
'z

liste.RemoveItem (0)
i = 0
Do While i < dire.ListCount
liste.AddItem dire.List(i)
i = i + 1
Loop
i = 0
Do While i < file.ListCount
taillepath = taillepath + FileLen(file.path & "" & file.List(i))
i = i + 1
Loop
Loop

Controls.Remove dire
Controls.Remove file
Controls.Remove liste
End Function


si vous savez la modifier en remplacant avec des autre fonction (dir et compagnie) je suis preneur

en passant, ma fonction est limitee par la taille des fichier (3go ca passe en negatif) qq connaitrait pas un type de donne plus "etendu" du genre qui compte de 0 a 2 tera (ca laisse de la marge pour les fichier lol)
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
3 mai 2005 à 22:20
Une alternative sans en être vraiment une !!! Pourquoi utiliser un bazooka pour tuer un moustique, alors que la paume de la main suffit !!
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
3 mai 2005 à 18:50
:D

c vrai dir serait bien mieux adapte, mais c'est une alternative :)

+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.