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 :

Erreur automation avec macro personnalisée et fichier partagé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de production
    Inscrit en
    Mai 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 8
    Par défaut Erreur automation avec macro personnalisée et fichier partagé
    Bonjour,

    Je n'arrive pas à solutionner un problème d'erreur automation sur un fichier partagé utilisant dans un module, une fonction personnalisée "existeFichier" trouvée sur ce forum.
    Quand j'ouvre en premier, le fichier partagé en question, aucun problème n’apparaît et les cellules qui utilisent la fonction "existeFichier" donnent le résultat mais quand un deuxième utilisateur de l'entreprise utilise ce même fichier partagé, une erreur automation apparaît sur son PC et il en est de même pour les autres utilisateurs de ce fichier. Il est alors impossible de débugger car l'application Excel est plantée et il me faut l’arrêter via le gestionnaire de tâches.
    Si je retire le partage de ce fichier, il n'y a plus de problème, même pour les utilisateurs utilisant ce fichier en mode "Lecture".
    D'autre part, si je retire cette fonction personnalisée de ce fichier partagé alors le problème n’existe plus et toutes les macros de ce fichier fonctionnent parfaitement et ce quelque soit le nombre de personnes utilisant ce fichier.
    Dans la mesure du possible, je souhaiterai laisser cette fonction personnalisée dans ce fichier partagé et ne pas avoir à l'enregistrer dans un fichier .xla ou .xlam.

    Quelqu'un pourrait il m'aider à solutionner ce problème ? Merci d'avance.

    Ci-dessous le code de cette fonction personnalisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function existeFichier(fichier, Optional répertoire)
       Application.Volatile
       If IsMissing(répertoire) Then répertoire = ThisWorkbook.Path
       temp = Dir(répertoire & "\" & fichier)
       existeFichier = (temp <> "")
    End Function

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Essaies en supprimant Application.Volatile (qui n'est pas utile dans ce cas)

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable de production
    Inscrit en
    Mai 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 8
    Par défaut
    Bonjour Patrice740,

    Merci pour ton aide et j'ai essayé ce matin en retirant "Application.Volatile", mais hélas même erreur. J'avoue que je désespère d'autant que je n'arrive pas à trouver sur le net une solution à ce problème.

  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 ne vois dans ton code rien qui provoquerait cette erreur.
    Il se peut par contre qu'elle surgisse (mais ailleurs dans ton code) si est ouvert le fichier (si non partagé, lui) dont le chemin est :
    répertoire & "\" & fichier
    alors indisponible tant qu'il n'est pas refermé.

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable de production
    Inscrit en
    Mai 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 8
    Par défaut
    Bonjour,

    Merci pour votre attention sur ce problème et, suite à votre remarque, et compte tenu que c'est un fichier que j'ai créé et utilise au travail, demain matin, je modifierai le fichier pour que la fonction "existefichier" pointe sur un seul fichier dont je suis certain qu'il n'est pas ouvert afin de voir si cela solutionne le problème et je vous tiens informé.

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable de production
    Inscrit en
    Mai 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 8
    Par défaut
    Bonjour,
    Comme convenu, je reviens sur le sujet et j'ai donc suivi ta recommandation (unparia) en allant un peu plus loin, à savoir j'ai créé un fichier simplifié avec la dite macro "Function existefichier" avec dans la feuil1, et dans une seule cellule, une formule utilisant la fonction personnalisée "existefichier" et pointant sur un fichier dont je suis certain qu'il n'est pas ouvert, puis j'ai partagé le fichier.
    Grosse surprise, ça fonctionne sur tous les PCs qui veulent utiliser ce fichier partagé, et donc il est maintenant clair que le problème ne vient pas de la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function existeFichier(fichier, Optional répertoire)
       Application.Volatile
       If IsMissing(répertoire) Then répertoire = ThisWorkbook.Path
       temp = Dir(répertoire & "\" & fichier)
       existeFichier = (temp <> "")
    End Function
    J'ai donc poursuivit ma recherche du problème sur le fichier d'origine (celui où j'ai le problème) et j'ai finalement trouvé, que c'est une formule qui est à l'origine de cette erreur "erreur automation".
    La formule en question est celle-ci :
    =SI(AA5="";"";SI(existefichier("PLC_"&G5&"*";+Repertoire_archives_PLC)=FAUX;LIEN_HYPERTEXTE(AA5;"PL");LIEN_HYPERTEXTE(AA5;"PL + PLC")))
    et ce qui est étonnant, si je la remplace par :
    =existefichier("PLC_"&G5&"*";+Repertoire_archives_PLC)
    , je n'ai plus cette erreur automation même si bien évidemment le résultat n'est pas celui escompter.

    Il me faut donc poursuivre ma recherche pour savoir pourquoi la formule :
    =SI(AA5="";"";SI(existefichier("PLC_"&G5&"*";+Repertoire_archives_PLC)=FAUX;LIEN_HYPERTEXTE(AA5;"PL");LIEN_HYPERTEXTE(AA5;"PL + PLC")))
    donne cette erreur automation et si quelqu'un a une idée, je suis preneur.

Discussions similaires

  1. [XL-2016] Erreur automation avec connexion ODBC oracle
    Par flipflip dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/05/2017, 10h34
  2. [XL-2003] Taille impressionante d'un fichier excel partagé avec macro
    Par Jeuson dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2013, 14h45
  3. erreur automation" sur macro qui fonctionnait trés bien !
    Par Mathieu51 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/06/2011, 10h21
  4. [XL-2007] Plantage excel à la fermeture du fichier avec macro si autre fichier excel ouvert
    Par Systémicien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2011, 09h00
  5. [AC-2007] erreur automation avec WMP
    Par aida75 dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/04/2009, 14h30

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