PrinceSilk
Messages postés56Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention26 mai 2013
-
12 juin 2008 à 14:30
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
12 juin 2008 à 14:47
Voila mon code, le principe, c'est que je Drop des dossiers depuis
l'explorateur windows dans ma liste, qui ajoute non pas les dossiers
mais le contenu des dossiers, en passant par une FileList
Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error GoTo 10
Dim Dossier As Variant
For Each Dossier In Data.Files
File1.Path = Dossier
For FichierEnCour = 0 To File1.ListCount - 1
List1.AddItem File1.List(FichierEnCour)
Next FichierEnCour
10 Next Dossier
End Sub
Bien sur, si je drop un fichier, le prog sort une erreur, car File1.Path=Dossier ne passe pas...
Avec
mon On Error GoTo 10, ca passe l'erreur, mais seulement une fois : Si
il y a 1 fichier parmis les objets Droppés, l'erreur va passer sans
bloquer le programme qui passera au Dossier suivant, mais si il y a
plusieurs fichiers parmis les objets Droppés, l'erreur passe bien sur
le premier fichier, mais le programme plante à cause du 2em fichier...
"On Error..." ne protège que de la première erreur, pas des suivantes... Je comprend pas trop pourquoi...
Normal que ceci ne fonctionne pas... Tu as ta gestion d'erreur qui n'est pas correcte.
Tu lui dis d'aller au numéro 10 et dans le numéro 10 tu lui dis d'aller au dossier suivant... Il ne comprends pas...
Tu dois sur ton evenement draganddrop utiliser une procedure que tu pourras rapeller en mettant ton Dossier. Genre :
Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
call TraitementDossier(Dossier)
end sub
private sub TraitementDossier(bTest as booleen, Dossier as variant)
On Error GoTo 10
For Each Dossier In Data.Files
File1.Path = Dossier
For FichierEnCour = 0 To File1.ListCount - 1
List1.AddItem File1.List(FichierEnCour)
Next FichierEnCour
exit sub
10 : bTest =False
call TraitementDossier(False, Dossier)
End Sub
S.L.B.
<hr />*********************************************************************************
Même si l'orthographe est la science des ânes, avec un petit effort, le message passe mieux...
*********************************************************************************