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 :

"Nom ambigu detecté : ~"


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut "Nom ambigu detecté : ~"
    Bonjour le forum !

    j'ai cette erreur depuis peu, et malgré mes recherches, je n'ai pas trouvé de quoi régler le problème lorsque vba m'annonce :

    "Erreur de compilation:
    Nom ambigu détecté : ~"

    Il devrait y avoir le nom d'une variable définie plusieurs fois ou le nom d'une procédure à la place de ~, mais je dois faire avec ~ .

    Pour plus de détails, dans mon classeur,il y a 3 modules comportant chacun une version d'un même programme ( que je dois garder) aux noms différents, faisant appel à des plusieurs fonctions (qui pour le coup, ont les même noms, mais certaines sont différentes entre des les modules, pas toutes) contenue dans les mêmes modules ( un prg principal appelant fonctions et procédures dans son module).

    L'erreur se produit quand j'applique à une variable booléenne global une valeur (true) dans un userform, dans un public sub commandButton_1.click(), l'userform en question étant utilisé par tout les modules (mais pas en même temps).

    je ne sais pas quoi rajouter, si vous voulez plus de précision, demander !

    La seul réponse que j'ai trouvé, c'est sur un forum traitant de VB5, chose qui je pense est assez éloigné de VBA.

    merci pour votre aide !

    J.O

  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
    Wesh gros! Alors t'as deux procédures ou deux fonctions qui ont le même nom. That's all. Change en une et ça devrait gazer!

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    okay! Je vois ça à la première heure demain ! Je reviendrais pour vous dire si ça a fonctionné ou pas !

    J.O

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut nom ambigu detecté :
    bonjour,

    j'ai rencontré ce problème sur un contrôle userform.

    je me suis aperçu en déplaçant légèrement le contrôle qu'un autre (une copie) se trouvait caché dessous. il m'a suffit de supprimer celui en trop pour régler le problème.

    cordialement.

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour, et merci pour les réponses.
    Je n'ai pas réussi à régler le problème. J'ai bien regardé sur mes userforms si un controle en cachait un autre, j'ai changé mes commandbutton1 de nom (j'en avais 2 en tout, un sur chacun de mes userforms), et j'ai changé de nom toute les fonctions appelées dans mes 3 prgm.

    Voici où ça bloque, si ça peut aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub uf_cdtCommandButton1_Click()
    satisf_2 = True
    Me.Hide
    End Sub
     
    Private Sub CommandButton2_Click()
    satisf_2 = False
    Me.Hide
    uf_all.Show
    End Sub
    explication : mon userform uf_cdt possède une list que je remplie, une checkbox et 2 boutons : un de validation uf_cdtcommandbutton1 (j'ai changé son nom), qui met une variable Globale à true satisf_2 (qui est déclaré absolument une seul fois, en public hors de tout prgm), l'autre bouton appelant un second userform uf_all (muni d'un seul bouton d'un nom différent de uf_cdtcommandbutton1, et d'une listbox).

    Le message d'erreur surligne en jaune Public Sub uf_cdtCommandButton1_Click() et en bleu "satisf_2 ="

    un p'tit coup de main ?

    merci !

    J.O

  6. #6
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    re bonjour,

    J'ai réglé mon problème !
    J'ai changé "satisf_2" par "satisfait" partout où "satisf_2" se trouvait, et ça re-fonctionne.
    "satisf_2" n'étant pas ( j'en suis quasi sûr) un nom déjà affecté à qqchose par Excel, je ne vois pas en quoi le changement de nom change le pb, surtout que je n'avais pas d'autre variable genre "satisf_1".

    Ce pb n'est donc pas résolu, bien que je n'ai plus de souci.

    Cdlt,

    J.O

  7. #7
    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
    Tu as un contrôle dans ton USF qui s'appelle Satisf_2..

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par julie_ob Voir le message
    "satisf_2" n'étant pas ( j'en suis quasi sûr) un nom déjà affecté à qqchose par Excel, je ne vois pas en quoi le changement de nom change le pb, surtout que je n'avais pas d'autre variable genre "satisf_1".
    Pour en être absolument certain, fait une recherche de la variable satisf_2 au niveau Projet.
    Cette variable n'aurait-elle pas été déclarée Public dans un module et avec une portabilité Module ou Procédure dans un autre ?

  9. #9
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut le retout
    Mmh, mon problème est revenu, avec la modification satsf_2 en satisfait.

    je n'ai pas contrôle sur mes userforms qui s'appellent satisf_2 : j'ai changé uniquement le nom de commandbutton1, je n'ai pas touché aux noms des autres contrôles. Si je fais un ctrl+f sur satisfait (ou satisf_2 avant) , j'ai 5 occurances : la déclaration public satisfait as boolean; les 2 occurrances que vous pouvez voir dans l'exemple du dessus, avec lequel j'affecte ou non une valeur à satisfait; et 2 tests sur satisfait. Je dois utiliser le même nom au travers de mes 3 modules car le nom est affecté dans une userform. J'ai bien fais attention à ne déclarer qu'une seule fois dans tout le module ma variable satisfait.
    Le pb est revenu suite à des modifications dans mon code qui n'avait absolument rien à voir avec cette variable, et plusieurs fermetures de classeurs.

    Je viens de changer satisfait en satisfied, ça me débloque, mais le pb reste entier.
    Pour P. Tulliez, je me suis mal exprimée : je voulais dire que je pensais que "satisf_2" n'était très probablement pas une variable utilisée par excel en natif, telle que "dim" peut l'être.

    autre chose ? ai-je bien exploré les pistes que vous m'avez donné ?

    Merci pour vos idées, on finira par cerner le pb

    J.O

  10. #10
    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
    Lol.. mais il n'y a aucun problème! Tu déclares des variables qui éxistent déjà.. C'est normal que ça beugue!

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour Julie,
    Tu peux utiliser et déclarer autant de fois une même variable dans une procédure à condition qu'elle soit déclarée dans la procédure.
    Si une variable est déclarée comme publique (par exemple Public maVariable as String) cette variable peut être utilisée dans toutes les procédures de tous les modules du projet mais ne peut être déclarée qu'une seule fois.
    Je te conseille la lecture de ce tutoriel Utiliser les variables en VBA Excel

Discussions similaires

  1. [XL-2002] Erreur nom ambigu detecté a l'ouverture d'un userform
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/12/2014, 19h45
  2. vba nom ambigu detecté dans un call
    Par cecile_64 dans le forum Excel
    Réponses: 2
    Dernier message: 16/08/2012, 10h17

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