IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tester si présence plusieurs fichiers [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Tester si présence plusieurs fichiers
    Bonjour à tous,

    Débutant VBA, j'ai crée un macro qui vérifie la présence de fichiers excel dans un répertoire et il m'envoie un msgbox si fichier manquant. mais si plusieurs fichiers manquants, serait il possible qu'un seul msgbox précisant quels fichiers manquants?

    exemple :

    fichier1A.csv
    fichier1B.csv
    fichier1C.csv
    fichier2A.csv
    fichier2B.csv
    fichier2C.csv et ainsi de suite (en gros une douzaine)

    voici macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub Test()
    Dim i As Integer
     
        i = VerifClasseur("C:\Chemin\fichier1A.csv")
        Select Case i
             Case 53: MsgBox "Fichier fichier1A.csv introuvable"
          End Select
     
         i = VerifClasseur("C:\Chemin\fichier1B.csv")
        Select Case i
            Case 53: MsgBox "Fichier fichier1B.csv introuvable"
        End Select
     
        i = VerifClasseur("C:\Chemin\fichier1C.csv")
        Select Case i
             Case 53: MsgBox "Fichier fichier1C.csv introuvable"
         End Select
     
     
    End Sub
     
     Private Function VerifClasseur(Fichier As String) As Integer
    Dim x As Integer
     
        On Error Resume Next
        x = FreeFile()
     
        Open Fichier For Input Lock Read As #x
        Close x
     
        VerifClasseur = Err.Number
     
        On Error GoTo 0
     
    End Function
    Je pense qu'il est possible de simplifier ce code?

    Merci d'avance
    Rough

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Test()
    Dim i As Integer, s As String
     
    If VerifClasseur("C:\Chemin\fichier1A.csv") = 53 Then s = s & vbCrLf & "Fichier fichier1A.csv introuvable"
    If VerifClasseur("C:\Chemin\fichier1B.csv") = 53 Then s = s & vbCrLf & "Fichier fichier1B.csv introuvable"
    If VerifClasseur("C:\Chemin\fichier1C.csv") = 53 Then s = s & vbCrLf & "Fichier fichier1C.csv introuvable"
     
    If s <> "" Then MsgBox Mid$(s,3)
     
    End Sub
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Pour ma part j'utilise FSO qui me permet de lister les fichiers d'un répertoire et ainsi faire ma vérification en utilisant les formules excel (Recherchev) a partir d'une liste des fichiers a trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Dim Fso As Object
    Dim FsoRepertoire As Object
    Dim FsoFichier As Object
    Dim i As Long
     
    Dim str() As String
     
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set FsoRepertoire = Fso.GetFolder("C:\")
     
    'Boucle sur fichiers du repertoire
     
    i = 1
    For Each FsoFichier In FsoRepertoire.Files
        str = Split(FsoFichier.Name, ".")
        If str(UBound(str)) = "xls" Then
            Range("A" & i).Value = FsoFichier.Name
            i = i + 1
        End If
    Next
    Jérôme

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,pour tester l'existence d'un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Function ExistenceFichier(sFichier As String) As Boolean
        ExistenceFichier = Dir$(sFichier) <> ""
    End Function

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    J'ai testé vos réponses et cela a résolu mon problème!

    Merci à jfontaine et à pgz!

    Bien Cordialement!!

    rough

    et merci à kiki29!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester la présence de fichiers dans des répertoires
    Par andre_21 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 03/11/2009, 16h29
  2. Réponses: 4
    Dernier message: 24/04/2007, 21h58
  3. Réponses: 4
    Dernier message: 27/04/2006, 17h51
  4. Réponses: 11
    Dernier message: 02/04/2004, 18h33
  5. Tester la presence de plusieurs fichiers
    Par Little_Goldo dans le forum Linux
    Réponses: 4
    Dernier message: 17/03/2004, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo