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 :

nom ambigu détecté


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2007
    Messages : 44
    Points : 6
    Points
    6
    Par défaut nom ambigu détecté
    Bonjour à toutes et à tous,
    Soit le classeur Menus.xlsm qui, pour l'instant, comprend un seul onglet (Paramètres de choix) avec vingt-trois colonnes (de A à W incluses).
    Soit le fichier Menus.xlsm qui, pour l'instant, comprends deux modules (MCodeslégumes et MLégumes), et deux formulaires (frmCodesLégumes et frmLégumes).
    J'ai exécuté le formulaire frmCodesLégumes (AjoutCodesLégumes) sans problèmes, les données saisies allant dans Classeur menus.xlsm, dans la colonne A.
    À l'exécution du formulaire frmLégumes (AjoutLégumes), l'erreur Nom ambigu détecté surgit : au débogage, dans la partie cmdAjoutLégumes_click, à la ligne With classeurmenus.sheets("Paramètres de choix"), classeurmenus s'entoure de bleu. Il semblerait donc que je ne puisse pas utiliser ce classeur plusieurs fois de suite. Ma question : comment procéder pour que mon classeur menus.xlsm soit utilisé plusieurs fois depuis la colonne A jusqu'à la colonne w incluse ?
    Nom des colonnes (chaque colonne aura un module et un UserForm dont le name sera commun à son nom) :
    Codes légumes;
    Légumes;
    Jours légumes;
    Conditionnement légumes;
    Destination légumes;
    Code légume deux;
    Légume deux;
    Jour légume deux;
    Conditionnement légume deux;
    Destination légume deux;
    Codes viandes;
    Viandes;
    Jours viandes;
    Conditionnement viandes;
    Destination viandes;
    Codes desserts;
    Desserts;
    Jours desserts;
    Conditionnement desserts;
    Destination desserts;
    Codes observations;
    Observations
    Période concernée.
    D'avance, merci pour votre aide précieuse.
    Bonnes fin de journée et continuation à toutes et à tous.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 383
    Points : 659
    Points
    659
    Par défaut
    Bonsoir BUDGETS,

    Il semblerait que classeurmenus fait référence à ton fichier Menus.xlsm.

    Tu as certainement déclaré cette variable dans chaque procédure via l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim classeurmenus as workbook
    Si tu veux effectivement t'en servir dans chaque module, il faut déclarer la variable une seule fois, en haut du module, c'est-à-dire en dehors d'une procédure.

    Et l'ambiguïté ne sera plus.

    Dis-nous si ça fonctionne

    A+
    Demain, je vais commencer par m'acheter des lunettes. Et après, je verrai bien.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 383
    Points : 659
    Points
    659
    Par défaut
    Re,

    Je n'avais pas vu, tu précises que tu utilises des modules différents à chaque fois...

    Essaye d'instancier à chaque fois classeurmenus avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set classeurmenus = ThisWorkbook
    Demain, je vais commencer par m'acheter des lunettes. Et après, je verrai bien.

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Ton problème est un problème de portée de variable.
    Tu as déclaré la variable ClasseurMenus comme publique dans le module MCodesLégumes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ClasseurMenus As Workbook
    c'est à dire que cette variable est déclarée, une fois pour toutes, pour tous les modules de ton fichier.

    L'ambigüité vient du fait que tu re-déclares inutilement cette variable dans le module MLégumes.

    Je te rappelles cet excellent cours : http://bidou.developpez.com/article/VBA/
    La portée des variables y est bien définie.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

Discussions similaires

  1. [XL-2003] "Erreur de compilation, nom ambigu détecté worksheet change". :/
    Par Imperium dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/09/2021, 14h36
  2. [XL-2010] problème de deux macros (Nom ambigu détecté )
    Par tarikov2006 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2015, 17h47
  3. Problème : nom ambigu détecté : ComboBox1_change
    Par eleanor62200 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 28/04/2011, 09h12
  4. nom ambigu détecté : worksheet change
    Par MEHDI_MHS dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/02/2011, 16h25
  5. [XL-2003] Nom ambigu détecté
    Par Tonete dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/11/2010, 20h49

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