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 variable [XL-2010]


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
    Ingénieur Process
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Process
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Par défaut Problème de variable
    Bonjour et merci de votre attention,

    J'ai actuellement un problème sur un userform,
    dans la partie initialisation je donne une valeur à "x" selon les valeurs de la feuille,
    pour information cette valeur est de -1, 0 ou 1.
    Si la valeur est 0 ou 1 pas de problème,
    pour information si ça vaut 0, ça montre un texte avec marqué que l'équipement est éteint,
    pour 1 pareil le texte explique que l'équipement est allumé,
    pour -1 au début ça va, ça affiche 2 boutons l'un pour ON, l'autre pour OFF.
    Du coup sur mes 2 boutons j'ai mis le code suivant, exemple pour le bouton ON :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub OptionButton_ON_Click()
        Label_CP2.ForeColor = &H4000&
        x = 1
        OptionButton_ON.ForeColor = &H4000&
        OptionButton_OFF.ForeColor = &H80000012
    End Sub
    En gros ce que je voudrais c'est que si je clique sur ON,
    alors le x = -1 qui voulait dire que l'état était indéterminé passe en 1, c'est à dire allumé.
    Mais j'ai l'impression que l'action est faite mais que le x utilisé dans la partie initialisation et dans la partie OptionButton sont pas les mêmes.
    Puisque par la suite, lorsque j’appuie sur le bouton qui ferme l'user forme, je demande la valeur de x et j'avise en fonction.
    Si x vaut -1 ça veut dire que l'utilisateur n'a pas choisi entre ON et OFF lorsque le choix lui a été proposé
    si x vaut 1 ou 0, cela veut dire que soit la valeur initiale était de 0 ou 1, soit que la valeur était de -1 et l'utilisateur à fait un choix et l'a fixé à 0 ou 1.
    Ou sinon cela veut dire qu'il y a un problème et donc un message d'erreur.
    Voila le code :

    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
    Private Sub CommandButton_valider_Click()
     
        If x = 1 Then
            Sheets("Données V2").Range("A27") = "ON"
        ElseIf x = 0 Then
            Sheets("Données V2").Range("A27") = "OFF"
        ElseIf x = -1 Then
            MsgBox ("Erreur, vous n'avez pas choisi l'état du compresseur 2.")
        Else
            MsgBox ("Erreur")
        End If
     
    Unload Etat_CP
     
    End Sub
    Et en fait a chaque fois il a x = 0, j'ai ajouté des espions pour essayer de comprendre et il semblerait que les contextes ne soient pas les mêmes, donc les x ne sont pas les mêmes. Donc j'aurais voulu savoir si il existe une écriture pour expliquer de quel contexte vient le x dont j'ai besoin.

    Cordialement

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dois-tu absolument travailler sur 3 valeurs ?
    Sinon, tu pourrais simplement passer par un ToggleButton dont l'état est un booléen.

    [Edit]
    Voici un exemple de code avec un UserForm contenant un ToggleButton nommé tglInterrupt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Message As Variant
    Private Sub tglInterrupt_Click()
      Status
    End Sub
    Private Sub UserForm_Initialize()
      Message = Array("Allumé", "Eteint")
      Status
    End Sub
    Sub Status()
      With Me.tglInterrupt: .Caption = Message(Abs(.Value)):  End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur Process
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Process
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Par défaut
    Tout d'abord, merci de ta réponse.

    Oui je dois absolument travaillé sur ces 3 valeurs,
    en fait, lorsque la macro est lancé je demande la date, après j'actualise les résultats selon la date,
    puis il y a trois possibilités d'état pour la machine :
    - Allumé
    - Éteint
    - Indéterminé

    Indéterminé signifie qu'à la date prise et avec les valeurs dont je dispose, je ne suis pas en mesure de déterminé l'état.

    Dans les 2 premiers cas c'est pas très compliqués puisque tout est fixé,
    donc ça ouvre une fenêtre avec l'état (Allumé ou éteint), l'utilisateur à plus qu'a cliquer sur Ok pour fermer et c'est bon.
    Mais si c'est indéterminé, je peux pas faire la suite, donc l'utilisateur doit fixer lui même l'état (Allumé ou éteint).

    Mais j'ai du mal à comprendre pourquoi le x est pas repris dans tout l'userform.
    Peut être que le plus simple serait d'envoyer la valeur de x dans une cellule et lorsque j'ai besoin de cette valeur d'aller chercher la valeur de la cellule. Comme ça la valeur serait indépendante de l'action dans l'userform.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ai pas relu ta question initiale mais pour répondre à cette question
    Mais j'ai du mal à comprendre pourquoi le x est pas repris dans tout l'userform.
    Peut être que le plus simple serait d'envoyer la valeur de x dans une cellule et lorsque j'ai besoin de cette valeur d'aller chercher la valeur de la cellule. Comme ça la valeur serait indépendante de l'action dans l'userform.
    Utilise une variable avec portabilité module. Tu déclares X en tête de module et il gardera sa valeur dans l'ensemble de tes procédures.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur Process
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Process
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Par défaut
    Au final, j'ai réussi à me débrouiller en envoyant la valeur dans une cellule et en vérifiant la valeur de cette cellule et en la changeant si nécessaire. Donc c'est bon.

    Merci, bonne fin de journée

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu fais comme tu veux mais il me semble que dans ce cas précis conserver la valeur de ta variable dans l'ensemble du module ou du projet est plus simple.
    A lire http://silkyroad.developpez.com/VBA/LesVariables/#LV
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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