Téléchargement
illégal

VBA VB6 - Quand le test DIR(Répertoir) plante !

Le test le plus simple pour tester si le chemin d'un répertoir est valide c'est bien évidemment...
    If Dir(MonRepertoir) = "" Then
        'Le répertoir n'existe pas ou n'est pas bien libellé
    End If


Sauf que... Si le chemin du répertoir est bien renseigner mais qu'il est vide Dir renvoi aussi "", mais quelque fois il peut être nécessaire de savoir si le répertoir existe, même s'il est vide.
Dans cette circonstante ont peu remplacer ce test par...

Dans un module général
Public Function TestSiVide(Rep As String) As Long
Dim Obj, RepP, F
    On Error GoTo Faute 'Si le répertoir n'est pas trouvé
    Set Obj = CreateObject("Scripting.FileSystemObject")
    Set RepP = Obj.Getfolder(Rep)
    Set F = RepP.Files
    TestSiVide = F.Count
    Set RepP = Nothing
    Set F = Nothing
Sortie:
    Set Obj = Nothing
    Exit Function
Faute:
    TestSiVide = -1
    Resume Sortie 'Le Resume est nécessaire pour éviter des noeux dans la pile.
End Function


Et dans le corps du code...
Sub Test(Rep as String)
Dim Nb As Long, MonRepertoir as String
    If Rep <> "" Then
        MonRepertoir = Rep & IIf(Right(Rep, 1) <> "\", "\", "") ' Eventuellement ajouter le slasch inverse
        Nb = TestSiVide(MonRepertoir ) 'Renvoi -1 si erreur de répertoir (erreur 76)
        If Nb = 0 Then
            MsgBox "Le répertoir sélectionné ne contient pas de fichier ", vbCritical, "Sélection répertoir"
        ElseIf Nb = -1 Then
            MsgBox "Le répertoir sélectionné n'est pas/plus valide", vbCritical, "Sélection répertoir"
        Else
             MsgBox "Le répertoir sélectionné est valide"
        End If
    End If
End Sub


Publié par lermite222 - Dernière mise à jour le 1 juin 2010 à 13:13 par lermite222
Ce document intitulé « VBA VB6 - Quand le test DIR(Répertoir) plante ! » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  VBA VB6 - Quand le test DIR(Répertoir) plante !
  •  VBA VB6 - Lire tous les fichiers, répertoires et sous/rép » Fiches pratiques : La fonction Scripting.FileSystemObject remplace avantageusement Application.FileSearch qui d'ailleurs, n'est plus disponible à partir d'Office 2007. Un exemple pour mémoriser tous les fichiers images d'un répertoire. À coller dans un...
  •  Verifier si un fichier existe en VB (Résolu) » Meilleure réponse: Bonjour C'est quoi une boucle if ? if dir (nomfichier$,vbnormal)="" then c'est que le fichier n'existe pas
  •  Scanner en ligne avec BitDefender » Fiches pratiques : L'éditeur de solutions de sécurité Bitdefender met à la disposition de tous les utilisateurs son outil en ligne gratuit QuickScan permettant à chacun de lancer une analyse de premier niveau sur son ordinateur à la recherche de virus, malwares et...
  •  VBA VB6 - Forcer l'ouverture d'un ComboBox » Fiches pratiques : Pour obliger un ComboBox à s'ouvrir il y a la fonction... ComboBox1.DropDown Seulement voilà... Pour ça il faut que le comboBox ai le focus, et si la commande vient d'un autre contrôle c'est ce contrôle qui a le focus, donc......
  •  VBA/VB6 - Rép. Mes Documents+Variables Environnement » Fiches pratiques : Dans l'explorateur de fichiers, le dossier Mes Documents semble être sur le root, or ce n'est pas le cas. Il est situé dans un sous-répertoire de C:\Documents and Settings. Le hic, c'est que le premier sous-répertoire prend le nom de l'utilisateur et...
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Modèle facturation
VBA - Une liste PopUP + positionnement + ôter cadre UF