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 :

Utilisation de la fonction Dir avec un chemin contenant des espaces [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Par défaut Utilisation de la fonction Dir avec un chemin contenant des espaces
    Bonjour,

    Je rencontre un problème lors de l'utilisation de la fonction Dir afin d'ouvrir le fichier le plus récent d'un répertoire.
    Si je mets un chemin d'accès ne contenant pas d'espaces, la macro fonctionne correctement, à l'inverse l'exécution de fait jamais rentrer dans la boucle.
    Voici un exemple ci-dessous avec un chemin d'accès modifié pour des raisons de confidentialité.

    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
    Sub OuvrirDernierDoc()
     
    Dim DernierFichier As String, Chemin2 As String, Fichier As String, DerniereDate As Date
    Chemin2 = "\\XXX\XX\XXXX\XXXX\XX\XX X - XX\XX XX\XXX XX XX\XXXX XXX\2022" ' saisir ici le chemin d'accès de ton répertoire
    Fichier = Dir(Chemin2 & "*.xlsx")
    Do While Fichier <> ""
        If FileDateTime(Chemin2 & Fichier) > DerniereDate Then
            DerniereDate = FileDateTime(Chemin2 & Fichier)
            DernierFichier = Fichier
        End If
        Fichier = Dir()
    Loop
     
     
    Workbooks.Open (Chemin2 & DernierFichier)
    End Sub
    Toute aide est la bienvenue car je n'arrive pas réellement à corriger mon erreur lors de la boucle. Cela pourrait-il venir de caractères spéciaux autres que les espaces ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    S'il ne rentre pas dans la boucle, cela signifie que la première instruction Dir renvoie une chaîne vide
    A la lecture rapide des lignes 4 et 5 de votre code publié, il me semble qu'il manque un backslash ou barre inversée (\) soit Fichier = Dir(Chemin2 & "\*.xlsx") ou bien ajouter un "\" à la fin de Chemin2 sinon le problème persistera à l'intérieur de la boucle.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Par défaut
    Merci infiniment encore une fois. Désolé d'avoir fait une erreur aussi grossière et de vous avoir mobilisé.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 466
    Par défaut
    La fonction Dir présente des faiblesses, je ne recommande pas son utilisation.

    Passe plutot par la librairie Scripting.FileSystemObject qui est plus fiable, et plus parlante.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2021, 13h10
  2. Problème avec un chemin ayant des espaces
    Par sylsau dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 24/04/2009, 21h53
  3. Réponses: 3
    Dernier message: 24/04/2009, 09h12
  4. [RegEx] Utilisation de la fonction "preg_match_all" avec des apostrophe ou des œ
    Par arnaudperfect dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2008, 23h05
  5. Utilisation de la fonction TOP avec une jointure
    Par pc75 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 06/07/2007, 08h11

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