Problème : Utilisation incorrecte de la propriété

darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005 - 6 sept. 2005 à 05:10
darkeenu Messages postés 25 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 10 septembre 2005 - 6 sept. 2005 à 13:38
Bonjour à tous...

Je travaille en ce moment sur le drag & drop de fichiers d'un explorateur vers une list_view.

Lorsque un drop est détecté sur le list_view, je sauvegarde les fichiers contenu dans le dataobject vers une liste (collection) temporaire, et j'appelle une fonction avec la list_view dans laquelle je dois placer les fichiers, et la liste (collection) des fichiers à placer.

Dès que je fais appel à ma fonction (qui ne connait aucun problème dans d'autres appels) je reçoit le message "Utilisation incorrecte de la propriété". Je voudrais savoir de quoi peut venir une telle erreur, puisque j'ai lu l'aide et qu'il parlent simplement de lecture ou d'écriture seule sur une propriété, et je ne vois pas pourquoi ça cloche lorsque je l'appelle du list_view, et pas des autres controles...

Merci de votre aide.

PS : Voici mon code :

Sub Ajouter_Fichiers(lst As ListView, Fichiers As Collection)
'Procédure qui ajoute dans lst tous les fichiers contenus dans la collection Fichiers
Dim i As Integer
Dim List_Item As ListItem
Dim fich As Scripting.File
Dim dir As Scripting.Folder
'pour chaque fichier à ajouter
For i = 1 To Fichiers.Count
'si le fichier existe
If (FSO.FileExists(Fichiers.Item(i))) Then
'si le fichier est déjà présent dans la liste
If (Fichier_Est_Dans_Liste(Fichiers.Item(i))) Then
Call Log("Fichier " & Fichiers.Item(i) & " déjà présent dans la liste")
Else
'on récupère le fichier d'index i dans la liste des fichiers à ajouter
Set fich = FSO.GetFile(Fichiers.Item(i))
'on ajoute toutes les informations concernant le fichier dans la liste des fichiers
Set List_Item = lst.ListItems.Add(, , lst.ListItems.Count)
List_Item.ListSubItems.Add , , fich.Name
List_Item.ListSubItems.Add , , fich.Path
List_Item.ListSubItems.Add , , fich.Type
List_Item.ListSubItems.Add , , Calc_Size(fich.Size)
List_Item.ListSubItems.Add , , Calc_Attributes(fich.Attributes)
List_Item.ListSubItems.Add , , fich.DateCreated
List_Item.ListSubItems.Add , , fich.DateLastAccessed
List_Item.ListSubItems.Add , , fich.DateLastModified
End If
Else
'si le répertoire existe
If (FSO.FolderExists(Fichiers.Item(i))) Then
'on récupère le dossier
Set dir = FSO.GetFolder(Fichiers.Item(i))
'si l'utilisateur souhaite ajouter les sous-dossiers
If (MsgBox("Souhaitez vous ajouter également les sous-dossiers ?", vbYesNo, "Ajouter les sous-dossiers")) Then
Call Listing_Dir(dir, True, Wd_Index.LTV_List)
Else
Call Listing_Dir(dir, False, Wd_Index.LTV_List)
End If
Else
Call Log("Fichier ou répertoire " & Fichiers.Item(i) & " inexistant")
End If
End If
Next i
End Sub

Private Sub LTV_List_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
'Lorsqu'une action de cliqué-glissé est détectée sur la liste des fichiers
Dim i As Integer
Dim Liste As Collection
'si au moins un fichier a été "cliqué-glissé"
If (Data.Files.Count > 0) Then
'on initialise la liste temporaire
Set Liste = New Collection
'pour chaque fichier de la liste
For i = 1 To Data.Files.Count
'on ajoute le fichier d'index i de la liste dans la liste temporaire
Liste.Add Data.Files.Item(i)
Next i
'C'EST ICI QUE CA PLANTE (IL ME SURLIGNE CALL AJOUTER_FICHIERS)
Call Ajouter_Fichiers(Wd_Index.LTV_List, Liste)
End If
End Sub

2 réponses

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
6 sept. 2005 à 11:42
Violent Ken

A mon avis, au mieux de mettre "Sub Ajouter_Fichiers", mets plutot "Function Ajouter_Fichiers" et au mieux de mettre "Call Ajouter_Fichiers(Wd_Index.LTV_List, Liste)" tu mets "Ajouter_Fichiers Wd_Index.LTV_List, Liste"
0
Rejoignez-nous