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 :

problème de déclaration de variable: nom ambigüe [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    chimiste sans service informatique support
    Inscrit en
    Mars 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : chimiste sans service informatique support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2013
    Messages : 16
    Par défaut problème de déclaration de variable: nom ambigüe
    Bonjour,
    dans un classeur j'ai plusieurs feuilles dont une nommée "SC" et une autre nommée "metric". La feuille "SC", dès qu'elle est sélectionnée, fait apparaitre un UserForm. La feuille "metric" sert pour synthétiser les données pour un tableau de bord. Pour cela les données sont traitées avec une macro. La macro allant chercher les données dans "SC" j'ai mis en place une variable 'macrobloc' boolean. Si elle a la valeur true alors lors de l'activation de "SC" le UserForm ne s'affiche pas.
    Tout fonctionnait bien durant plusieurs mois et depuis hier:
    _ soit j'ai droit au message "erreur de compilation. Nom ambigüe détecté" lorsque je vire "Public macrobloc as boolean";
    _ soit 'macrobloc' prend la bonne la bonne valeur dans ma macro de tableau de bord mais dès que la feuille "SC" est selectionné ma variable n'est pas prise en compte.

    pour la feuille "SC" j'ai cela comme code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Option Explicit
    Public macrobloc As Boolean
     
    Private Sub Worksheet_Activate()
    If macrobloc = True Then
        Exit Sub
    End If
    On Error Resume Next
    Sheets("SupplyChain").Select
    Selection.End(xlUp).Select
    ActiveSheet.ShowAllData
    FormRecherche.Show
    End Sub
    et dans la macro pour le tableau de bord, dans le module "certif" j'ai cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
    Public macrobloc As Boolean
     
     
    Sub metrix_certif()
    ' macro pour préparer les données afin de faire un metric sur les certificats disponibles par client
     
    ' déclaration
     
    ' nettoyage de la feuille
    Sheets("metrix certif").Select
    Cells.Select
    Selection.Delete Shift:=xlUp
     
    ' on bloque l userform
    macrobloc = True
     
    ' suppression des filtre sur la feuille SupplyChain si besoin
    On Error Resume Next
    Sheets("SupplyChain").Select
    ...
    ...
    Au niveau des Variables Locales je vois bien 'macrobloc' qui passe à True puis lors de la sélection de "SC" la variable n'existe plus.

    A quel niveau ai-je fais une boulette s'il vous plait?
    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 91
    Par défaut
    Tu as défini la variable macrobloc dans chaque feuille.
    Cette variable et surtout sa valeur ne sont connues que dans cette feuille.
    Donc en fait, tu as 2 variables qui portent le même nom...
    Si tu veux avoir une variable commune à tes deux feuilles, il faut :
    - enlever de chaque feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public macrobloc As Boolean
    - créer un module et mettre le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Global macrobloc As Boolean

  3. #3
    Membre averti
    Homme Profil pro
    chimiste sans service informatique support
    Inscrit en
    Mars 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : chimiste sans service informatique support
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2013
    Messages : 16
    Par défaut
    Ok donc si j'ai bien compris je crée un module à part dans mon classeur et je déclare toutes mes variables servant dans différents modules et userforms.
    Je fais le test et si c'est tout bon je passe le sujet en résolu.
    Merci.

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

Discussions similaires

  1. Problème de déclaration de variable
    Par popy67 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 15/01/2009, 13h09
  2. [Débutant] Problème de déclaration de variable
    Par cagri dans le forum MATLAB
    Réponses: 10
    Dernier message: 13/06/2008, 12h20
  3. Réponses: 2
    Dernier message: 15/11/2007, 15h15
  4. [Configuration] Problème de déclaration de variable en php5
    Par domray dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/04/2007, 01h22
  5. Réponses: 8
    Dernier message: 03/11/2006, 15h55

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