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 -> Fichier introuvable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut Dir -> Fichier introuvable
    Bonjour,

    Je débute sur VBA et je bloque sur un truc très simple à partir d'un code que j'ai trouvé dans la FAQ :

    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
    Sub ImportFichiers()
        Dim Chemin As String, Fichier As String
     
        'Répertoire contenant les fichiers
        Chemin = ThisWorkbook.Path & "/"
        MsgBox Chemin
     
        'Recupe des fichiers
        Fichier = Dir(Chemin & "*.xls")
     
        Do While Len(Fichier) > 0
            Debug.Print Chemin & Fichier
            Fichier = Dir()
        Loop
    End Sub
    Lorsque je lance ma macro, j'ai l'erreur "fichier introuvable".
    J'ai essayé sans le & "/" pour la définition du chemin mais c la même chose...

    Avez-vous une idée pour m'aider ?

    Merci par avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Dir() n'a pas été nativement prévu pour Mac, il faut adapter un peu

    voici une publication à ce sujet : http://www.rondebruin.nl/mac/mac013.htm

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Merci !!

    Je vais fouiller le sujet ! Sachant que ma macro doit pouvoir fonctionner sur les deux systèmes...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Je n'en suis pas certain, mais il n'est pas par ailleurs impossible que le séparateur de chemins sous mac soit différent de celui utilisé sous Windows.
    Dans le doute, j'utiliserais personnellement la propriété PathSeparator de l'objet application.

  5. #5
    Expert confirmé
    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
    Par défaut
    Salut, sur et certain, comme suggéré par UnParia, utilise Application.PathSeparator car sur PC c'est "\" et Mac ":" et Office 2011 sur Mac car sinon AppleScript . Voir galère ici

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour (coucou Joe, Kiki et Jacques )

    En fait comme il y a des différences déjà entre Mac et PC, et sur certains point entre Excel Mac 2011 et 2016,
    il faut apporter parfois de légère modifications.
    Dans ce cas là le signe étoile ne sera pas reconnu en tant que tel c-à-d …
    Je site M$ :
    "MS Excel utilise le signe "*" comme un signe générique qui permet de remplacer tous caractères dans une chaîne,
    un peu à la manière de MS-DOS. Dans ce cas, la fonction Remplacer remplace tous les caractères par le caractère choisi
    … mais en tant que simple caractère d'où l'erreur

    Par contre le caractère "*" avec Like ça marche

    PS : la séparation sur Excel 2011 c'est ":" - sur Excel 2016 c'est "/"

    il faut modifier la macro avec un If … Like … then

    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
    Sub ImportFichiers()
        Dim Chemin As String, Fichier As String
     
        'Répertoire contenant les fichiers
        Chemin = ThisWorkbook.Path & "/" ' ou => Chemin = ThisWorkbook.Path & Application.PathSeparator  | comme suggéré plus haut
        MsgBox Chemin
     
        'Recupe des fichiers
        Fichier = Dir(Chemin)
     
        Do While Len(Fichier) > 0
            If Fichier Like "*.xls" then ' tu peux aussi faire  => If Fichier Like "*.xls*" then  - ou encore => If Fichier Like "*.xls" Or Fichier Like "*.xlsx" then
               Debug.Print Chemin & Fichier
            End if
            Fichier = Dir()
        Loop
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

Discussions similaires

  1. Réponses: 19
    Dernier message: 25/10/2006, 15h36
  2. Pb "fichier introuvable sur serveur
    Par 600rf dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2006, 13h36
  3. Réponses: 2
    Dernier message: 03/04/2006, 12h37
  4. [Erreur] E1026 Fichier introuvable : 'xxx.dfm'
    Par richard038 dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2006, 14h47
  5. [FLASH MX] flash+xml : Fichier introuvable
    Par bariot dans le forum Flash
    Réponses: 1
    Dernier message: 02/08/2005, 13h31

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