"On Error..." marche pas !!

PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013 - 12 juin 2008 à 14:30
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 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...

Merci d'avance !

1 réponse

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
12 juin 2008 à 14:47
Bonjour,

Pas la peine de reposter...
http://www.vbfrance.com/infomsg_ON-ERROR-MARCHE-PAS_1151955.aspx#13
Il te suffisait de demander à un administrateur de bouger ton post dans la bonne section !!!

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...
*********************************************************************************
0
Rejoignez-nous