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

Excel Discussion :

Module VB en double créé une erreur de compilation "nom ambigu" lors d'une suppression/import pour mise à jour [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Module VB en double créé une erreur de compilation "nom ambigu" lors d'une suppression/import pour mise à jour
    Bonjour,

    Merci à tous ce qui liront ce message.

    Je rencontre le problème suivant :
    Un fichier Excel possède une dizaine de modules VB.
    Une procédure supprime les modules existants et en charge d'autres mis à jour.
    Cela est fait par les méthodes :
    ThisWorkbook.VBProject.VBComponents.Remove "Nom_du_module" 'supprime l'ancien module
    Puis
    ThisWorkbook.VBProject.VBComponents.Import "Nom_du_fichier" 'Import le module mis à jour

    Le problème : certaines fois, une erreur de compilation : "Nom ambigu détecté" apparait. En cherchant, j'ai remarqué que l'ancien module n'était pas supprimé avant l'import du nouveau. Et c'est la présence des 2 modules en même temps avec une même déclaration de "Enum" qui pose problème.

    J'en conclus que le problème vient du fait : l’exécution du Remove est effective après l'import (malgré le fait que l'instruction remove soit avant l'instruction l'import.)

    De plus, la procédure de "mise à jour" est lancé à chaque ouverture de fichier.
    J'ai remarqué également que cela se produisait à chaque ouverture de fichier si le fichier n'était pas enregistré entre temps. S'il était enregistré au moins une fois, le problème disparait puis réapparait plusieurs enregistrement plus tard.

    Quelqu'un aurait une solution ?

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Mets un timer d'attente de 2 secs entre ton remove et ton import un application.displayalerts = False

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci pour l'info du displayAlert, je vais tester.

    J'avais essayé le timer d'attente mais cela n'avait pas d'impact...

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Après test, voici la solution :
    Entre la suppression et l'import des modules, j'ai rajouté le code suivant :

    While ExisteMod
    DoEvents
    Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
    Wend
    Avec ExisteMod une fonction renvoyant True si le module existe encore.

    Merci à tous ceux qui ont participé!

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Avec plaisir merci de l'info et bien vu

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

Discussions similaires

  1. Personnaliser eclipse lors d'une erreur de compilation
    Par garf365 dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 03/06/2009, 16h56
  2. Réponses: 6
    Dernier message: 25/06/2007, 13h41
  3. Encore une erreur de compilation
    Par MarioNoFearS dans le forum C++
    Réponses: 3
    Dernier message: 02/06/2007, 13h05
  4. [Free Pascal] Aide pour comprendre une erreur de compilation
    Par SimoBenz dans le forum Free Pascal
    Réponses: 7
    Dernier message: 05/12/2006, 18h43
  5. Réafficher un formulaire lors d'une erreur
    Par Viau dans le forum Langage
    Réponses: 22
    Dernier message: 03/02/2006, 09h38

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