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 :

VBA : Workbooks.Open() Erreur 1004 : alors que le fichier existe.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Par défaut VBA : Workbooks.Open() Erreur 1004 : alors que le fichier existe.
    Hello,

    Alors voilà,
    Je fais tourner mensuellement une petite macro qui réalise pour moi des simulations.
    Bref, pour faire le fichier en question accède à un tierce fichier et il se trouve que ce mois-ci, une erreur survient.

    Initialement j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set WB_NG = Workbooks.Open(WS_tabdebord.Range("B2") & WS_tabdebord.Range("B4"), Editable:=True)
    Que j'ai changé afin de pouvoir test mes variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim tPath As String
    tPath = Dir(WS_tabdebord.Range("B2") & WS_tabdebord.Range("B4")) 'j observe que tPath n est pas "", et trouve bien le fichier
    Set WB_NG = Workbooks.Open(tPath , Editable:=True) 'je lance la méthode > elle n'aboutira jamais : Erreur 1004.

    Si quelqu'un connait les causes possibles d'une erreur 1004.

    Après quelques lectures j'ai lu que cela pouvait être dû à une corruption du fichier; je n'espère pas mais je ne sais pas comment le tester - sachant que je peux l'ouvrir à la main.
    Le fichier est sur un réseau mais j'ai testé l'ouverture du même fichier sur mon bureau l'erreur est la même.

    J'ai essayé d'ouvrir un autre fichier vide (.xlsx) et je n'ai eu aucun pb (mon fichier est en .xlsb).

    Merci d'avance!

    Cdt,
    MS

  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,

    tPath contient le nom du fichier, et uniquement son nom.

    Ajoute le chemin d'accès

  3. #3
    Membre confirmé
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Par défaut
    Oui en voulant laisser mon code plus propre ici j'y ai inclus une erreur...

    Bref, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim tPath As String
    tPath = Dir(WS_tabdebord.Range("B2") & WS_tabdebord.Range("B4")) 'j observe que tPath n est pas "", et trouve bien le fichier
    tPath = WS_tabdebord.Range("B2") & WS_tabdebord.Range("B4")
    Set WB_NG = Workbooks.Open(tPath , Editable:=True) 'je lance la méthode > elle n'aboutira jamais : Erreur 1004.
    Désolé et merci ^^

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tPath = WS_tabdebord.Range("B2") & WS_tabdebord.Range("B4") & ".xlsb"

  5. #5
    Membre confirmé
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Par défaut
    L'extension est déjà contenu dans : WS_tabdebord.Range("B4")

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Dans ce cas, essaye de voir ce qui se passe si tu la retires.

    J'ai déjà rencontré un problème similaire de macro qui marchait ou pas en fonction de PC, tout ça parce que certains avaient coché l'option "Masquer les extensions" et d'autres pas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    *
    Dim tPath As String
    tPath=WS_tabdebord.Range("B2") 
    If  Right(tPath,1) <>"\" then tPath= tPath & "\"
    tPath = Dir(tPath & WS_tabdebord.Range("B4")) 'j observe que tPath n est pas "", et trouve bien le fichier
    Set WB_NG = Workbooks.Open(tPath , Editable:=True) 'je lance la méthode > elle n'aboutira jamais : Erreur 1004.

  8. #8
    Membre confirmé
    Homme Profil pro
    enquiquineur d'unparia
    Inscrit en
    Février 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : enquiquineur d'unparia

    Informations forums :
    Inscription : Février 2014
    Messages : 82
    Par défaut
    Bonjour à tous,

    J'ai finalement réussi, cependant je ne comprend pas : donc je suis assez perplexe !

    Il a fallu que je rajoute l'argument CorruptLoad:=xlRepairFile.

    Le fichier s'ouvre et la macro continue. Je suis entrain de regarder quelles sont les implications exactes, si vous avez des infos je suis preneur, sinon je mettrais en "résolu" d'ici quelques jours.

    Merci

Discussions similaires

  1. [XL-2013] Méthode Workbooks.Open erreur 1004 non géré en natif
    Par ranzoken dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2015, 11h25
  2. Workbooks.Open : Erreur "Argument ou appel de procédure incorrect"
    Par Kropernic dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/07/2008, 09h49
  3. Réponses: 28
    Dernier message: 23/08/2007, 11h19
  4. [MySQL] réponse vide alors que le champs existe dans la table, sans retour d'erreur
    Par ben_skywalker dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/02/2007, 14h20
  5. [VBA Access] Champ texte null alors que l'objet existe bien.
    Par Caroline1 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/03/2006, 17h31

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