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 :

Dir : "erreur d'exécution '5'" argument ou appelle de procedure incorrect [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Points : 92
    Points
    92
    Par défaut Dir : "erreur d'exécution '5'" argument ou appelle de procedure incorrect
    Bonjour à tous,

    Voici mon problème j'ai une boucle while définie avec un Dir dans les conditions. Le problème est que si j'utilise cette fonction une autre fois dans ma boucle ça ne marche pas.

    voici les problèmes:

    si mon fichier n'existe pas alors lors du fichier= Dir il me met cette erreur.
    Si mon fichier existe la boule ne fais qu'un seul tour.

    Dans mon dossier :"données d'essai zip" j'ai 2 fichier donc je devrais avoir à la fin n = 2.

    Mon but n'est pas de comté les fichiers le n est juste là comme moyen de contrôle de ma boucle.


    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
    Function Existencedossier(Dossieratest As Variant) As Variant
    Existencedossier = Dir(Dossieratest, vbDirectory)
     
    End Function
     
    Sub fichier()
     
    Dim fichier As Variant
    Dim cheminfichier As Variant
    Dim Dossiertempasup As Variant
     
    Dim n As Integer
     
    'ouverture des fichiers EVRP
    cheminfichier = "C:\Users\xxx\Desktop\Suivi\données essai zip\"
    fichier = Dir(cheminfichier & "*.*")
    n = 0
    While fichier <> ""
    n = n + 1
     
     
        Dossiertempasup = "C:\Users\xxx\Desktop\Dossier tempon à sup"
        If Existencedossier(Dossiertempasup) = "" Then
        MkDir Dossiertempasup
        End If
    fichier = Dir
    Wend
     
    MsgBox n
     
    End Sub

    J'espère que j'ai été claire.

    Merci d'avance de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Bonjour,

    tester avec les lignes n°23 à 25 en commentaire …


  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Points : 92
    Points
    92
    Par défaut
    Oui je l'ai déjà fait ça marche nickel c'est pour ça que je me dis que le problème viens du fait que je test l’existence d'un dossier par la même méthode et du coup ça fait planter la boucle.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    C'est donc bien une erreur de conception / logique :

    il faudrait peut-être tester l'existence du dossier avant la ligne n°16, non ?!


  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Points : 92
    Points
    92
    Par défaut
    C'est bon ça marche

    Merci beaucoup


    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
    Sub fichier()
     
    Dim fichier As Variant
    Dim cheminfichier As Variant
    Dim Dossiertempasup As Variant
     
    Dim n As Integer
     
    Dossiertempasup = "C:\Users\xx\Desktop\Dossier tempon à sup"
    If Existencedossier(Dossiertempasup) = "" Then
    MkDir Dossiertempasup
    End If
     
    'ouverture des fichiers EVRP
    cheminfichier = "C:\Users\xxx\Desktop\Suivi\données essai zip\"
    fichier = Dir(cheminfichier & "*.*")
    n = 0
    While fichier <> ""
    n = n + 1
     
    fichier = Dir
    Wend
     
    MsgBox n
    MsgBox "Mise à jour fini"
    End Sub

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/03/2014, 19h08
  2. [AC-2010] Argument ou appel de procedure incorrect
    Par Begsweb dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/02/2012, 18h09
  3. [XL-2003] Shell et Erreur d'exécution 5: Argument ou appel de procédure incorrect
    Par akr54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2010, 15h15
  4. Erreur d'exécution 5 ; Argument ou appel de procédure Incorrect
    Par amirad dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 31/12/2009, 20h34
  5. Réponses: 6
    Dernier message: 02/07/2009, 18h16

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