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 :

Un bouton commande qui affiche 1 texte différent à chaque clic


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2019
    Messages : 12
    Par défaut Un bouton commande qui affiche 1 texte différent à chaque clic
    Bonjour à tous,

    je me lance depuis peu dans la programmation grâce au travail et ce n'est pas simple du tout pour moi.
    Je me suis déjà énormément inspiré de tout se que vous avez fait pour mes autres programmes et j'adore votre forum.
    Mais voila je n'ai pas trouvé la réponse qu'il me fallait donc voici ma question.

    je voudrais à l'aide d'un bouton de commande activeX avoir 3 actions qui modifierai son CAPTION.
    je m'explique plus en détail, je voudrais que, si je clic une fois, son caption affiche "OK", si je reclic dessus le bouton passe en rouge et son caption indique "NOK" et si je rereclic une fois dessus le bouton repasse au gris classique sans rien de marquer.
    Alors à l'origine j'avais utiliser un bouton à bascule activeX avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ToggleButton1_Click()
        If ToggleButton1.Value = True Then
            ToggleButton1.Caption = "OK"
        Else
            ToggleButton1.Caption = ""
        End If
    End Sub
    mais le problème et que je ne crois pas que je puisse ajouter l'étape "NOK avec changement de couleur"
    Mon programme comporte environ 240 boutons et n'y connaissant rien j'ai été obliger de coder chaque bouton 1 par 1....

    Merci d'avance pour votre aide j'ai hâte de voir vos réponses.

    Cordialement
    Logan

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le principe est de créer un Sub avec la référence de ton bouton en paramètre.
    Ainsi, ta macro "click" pourra se limiter à une seule ligne dans laquelle tu mettras l'appel de ce sub avec la référence de ton bouton.

    Voici le principe. Je tape ça à l'arrache sur le forum sans tester. Tu auras donc de l'adaptation et du débugage à faire.
    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
    Private Sub ToggleButton1_Click() : Call ButtonChange(ToggleButton1) : End Sub
    Private Sub ToggleButton2_Click() : Call ButtonChange(ToggleButton2) : End Sub
    Private Sub ToggleButton3_Click() : Call ButtonChange(ToggleButton3) : End Sub
     
    Sub ButtonChange(TB As Object)
        Select Case TB.Caption
        Case "OK"
            TB.Caption = "NOK"
            TB.BackColor = RGB(255,0,0)
        Case "NOK"
            TB.Caption = ""
            TB.BackColor = RGB(100,100,100)
        Case ""
            TB.Caption = "OK"
            TB.BackColor = RGB(0,255,0)
        End Select
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2019
    Messages : 12
    Par défaut
    Bonjour Menhir,

    ça fonctionne comme je voulais à une exception près , vu que c'est un bouton bascule 1 coup j'ai un rouge et le 2eme coup c'est un rouge "quadrillé"
    Alors j'ai bien essayé d'adapter ton code sur un bouton de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
        Select Case CommandButton1.Caption
        Case "OK"
            CommandButton1.Caption = "NOK"
            CommandButton1.BackColor = RGB(255, 0, 0)
        Case "NOK"
            CommandButton1.Caption = ""
            CommandButton1.BackColor = RGB(100, 100, 100)
        Case ""
            CommandButton1.Caption = "OK"
            CommandButton1.BackColor = RGB(0, 255, 0)
        End Select
    End Sub
    Mais malheureusement rien ne se passe…

    As-tu encore une solution miracle pour moi?
    Effectivement j'aimerais bien avoir qu'un seul SUB pour tout mes bouton dans le genre Private Sub ToggleButton(1;248)_Click() mais ce serait beaucoup trop facile si ça se passait comme ça…

    En attendant merci de prendre de ton temps pour m'aider
    Logan

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par lieutnant-col Voir le message
    le 2eme coup c'est un rouge "quadrillé"
    Sans doute parce que BackColor n'est pas la bonne propriété à modifier.
    Fouille dans les propriétés du bouton pour trouver celle qui convient : https://docs.microsoft.com/fr-fr/off...8properties%29

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2019
    Messages : 12
    Par défaut
    Si c'est bien le bon paramètre je pense que c'est juste pas le bouton adapté.
    Mais c'est pas grave je vais faire avec c'est pas super gênant comme problème et sa fait se que je veux.
    Sinon un code unique pour tout mes boutons c'est possible ou je remet ton code 1 par 1 dans tout mes boutons?

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par lieutnant-col Voir le message
    Sinon un code unique pour tout mes boutons c'est possible ou je remet ton code 1 par 1 dans tout mes boutons?
    Voir ma réponse #2

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Le principe est de créer un Sub avec la référence de ton bouton en paramètre.
    Ainsi, ta macro "click" pourra se limiter à une seule ligne dans laquelle tu mettras l'appel de ce sub avec la référence de ton bouton.

    Voici le principe. Je tape ça à l'arrache sur le forum sans tester. Tu auras donc de l'adaptation et du débugage à faire.
    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
    Private Sub ToggleButton1_Click() : Call ButtonChange(ToggleButton1) : End Sub
    Private Sub ToggleButton2_Click() : Call ButtonChange(ToggleButton2) : End Sub
    Private Sub ToggleButton3_Click() : Call ButtonChange(ToggleButton3) : End Sub
     
    Sub ButtonChange(TB As Object)
        Select Case TB.Caption
        Case "OK"
            TB.Caption = "NOK"
            TB.BackColor = RGB(255,0,0)
        Case "NOK"
            TB.Caption = ""
            TB.BackColor = RGB(100,100,100)
        Case ""
            TB.Caption = "OK"
            TB.BackColor = RGB(0,255,0)
        End Select
    End Sub

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/03/2016, 10h04
  2. bouton qui affiche le texte
    Par Alex59126 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/02/2009, 08h53
  3. création de 3 liens qui affichent 3 textes différents.
    Par argon dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/05/2008, 10h52
  4. Réponses: 4
    Dernier message: 13/04/2007, 15h26
  5. bouton image pour afficher du texte
    Par froggies dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 12h09

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