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 :

[E-07] Chemins relatifs / absolus


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut [E-07] Chemins relatifs / absolus
    Bonjour à tous,

    Il m'arrive un souci pour le moins étrange.
    Je suis en train de concevoir un programme où il est nécessaire d'ouvrir d'autres fichiers excel situés dans le même répertoire.
    Voici ce que je faisais:
    Supposons que ce soient les fichiers A et B situés dans le dossier nommé Dossier.

    J'effectuais ceci en mettant directement le nom du fichier, puisqu'il est situé dans le même dossier, c'est-à-dire:

    Workbooks.open "B.xlsx"

    Et ça fonctionnait sans problèmes !

    Ce matin je reprends mon programme que je n'avais pas touché depuis une semaine, et là rien ne va plus. Je tombe sur une erreur 1004 me disant que le fichier n'existe pas ou qu'il est mal orthographié.... Evidemment, j'ai vérifié, il est bien dans le même dossier, d'autant qu'il y a une semaine cela marchait sans soucis...

    Par contre, j'arrive à faire fonctionner si je mets le chemin absolu:

    Workbooks.open "C:/Dossier/B.xlsx"

    Mais j'aimais bien quand je n'avais pas besoin de mettre le chemin absolu, et où seul le nom du fichier suffisait...

    Quelqu'un aurait-il une idée d'une "option" ou quelque chose comme ça que j'aurais décoché par mégarde ?

    D'avance merci !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 572
    Par défaut
    salut
    sans pouvoir repondre axactement a ton probleme, je peux te donner une solution "passe partout" pour ce genre de soucis
    si tes fichier sont dans le même dossir, finalemenet, c'est le plus facile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    chemin = this woorkbooks.path
    nomfichier = "B"
    workbooks.open chemin & nomfichier"& ".xls"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut
    Oui, j'étais en train d'opter pour cette solution, mais je viens de me rendre compte que le problème est plus grave que ça...

    Dans cette même appli que je développe, mon code sous VBA Excel faisait appel à word également (en utilisant du VBA word), et ça marchait parfaitement. Maintenant, le programme bloque sur l'instanciation du Word.document avec une erreur 429.

    Les 2 problèmes mélangés me font penser à un problème de DLL, comme si mon VBA Excel ne pouvait pas utiliser les DLL "externes", alors qu'avant tout fonctionnait nickel (!).

    La seule chose que j'ai faite sur mon PC a été la désinstallation de ZoneAlarm, mais j'avoue que je ne vois pas bien le rapport -_-

    Une idée pour récupérer un VBA fonctionnant "normalement" ?

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    les causes peuvent être multiples, bien qu'il puisse tout simplement s'agir d'un composant ou d'une dll endomagé(e) ou absent(e)

    Essaye d'isoler le problème.

    La manière dont tu crées un objet application office peut t'y aider (à isoler plus facilement)

    Commence par lire très attentivement ceci :

    http://support.microsoft.com/kb/244264/fr

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour ce qui me concerne, je n'ai jamais connu de version de VBA se souvenant du chemin d'un fichier. Pour moi, Open réclame toujours le chemin complet du fichier à ouvrir.
    Dans VBA comme dans Excel, tu as une répertoire d'enregistrement par défaut. Si tu utilises "Application.Workbooks.Open "Tonfichier.xls" sans préciser le chemin, c'est dans ce répertoire que doit se trouver le fichier.
    Si tu le places ailleurs, tu dois préciser le chemin.
    Si tu ouvres un fichier par sélection dans l'explorateur Windows, tu pourras récupérer le chemin avec "ActiveWorkbook.path" ou "Thisworbook.path" s'il contient les macros.
    Tu peux tester facilement ces lignes qui ouvrent le répertoire par défaut... si tu ne l'as pas modifier entre temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FileToOpen = Application.GetOpenFilename()
    'ou
    Application.Dialogs(xlDialogOpen).Show
    Mais ne vas pas chercher un pb de DLL, ce que tu observes est NORMAL !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Par défaut
    J'ai regardé le support de MS avec attention ucfoutu, mais ça ne remarche pas .

    Donc si je reprécise le problème, je voudrais exécuter le code suivant dans VBA Excel (qui marchait avant je me répète):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub MonEssai2()
     
        Dim catalogue As Word.Document
        Set catalogue = Documents.Add
     
    End Sub
    Si on l'exécute basiquement, évidemment ça plante car on n'a pas ajouté de link vers la librairie Word.

    Et après l'avoir ajoutée, ça plante à la deuxième ligne avec une erreur 429: "Un composant ActiveX ne peut pas créer d'objets", qui me faisait penser à des DLL endommagées . Mais je ne vois vraiment pas comment c'est arrivé.

    PS: ouskel, mon fichier se trouve bien dans le répertoire en cours, et ça marchait parfaitement avant, donc ce n'est pas normal je pense.

    Si vous avez d'autres idées ? :/

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

Discussions similaires

  1. VBA Chemins relatifs/absolus
    Par aubrespinj dans le forum Général VBA
    Réponses: 3
    Dernier message: 04/10/2011, 10h41
  2. Chemins relatifs et absolus sur hébergeur
    Par faamugol dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2008, 22h40
  3. Réponses: 1
    Dernier message: 10/04/2008, 18h15
  4. Chemins relatifs / absolus
    Par WagaSeb dans le forum Langage
    Réponses: 6
    Dernier message: 22/06/2007, 22h41
  5. Réponses: 10
    Dernier message: 13/11/2005, 23h56

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