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 :

Changer la propriété Caption d'un bouton de commande par une macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut Changer la propriété Caption d'un bouton de commande par une macro
    Bonjour à tous

    Je suis en train de faire un test sur un UserForm, et j'aimerais savoir s'il est possible de changer la propriéte Caption d'un bouton de commande par une macro.

    Voila , j'ai un UserForm avec des multiples OptionButton et un bouton de commande pour valider le choix

    Tant qu'aucun OptionButton n'est sélectionné le texte de mon bouton de commande est Effacer. Si je coche un de mes bouton d'option le texte du bouton de commande doit passer à Valider mais je ne sais pas si cela peut se faire.

    voici le code que j'ai essayé mais ça ne fonctionne pas:

    Pour passer à l'affichage Valider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If x = 1 Then
         CommandButton1.Caption = "Valider"  ' si un OptionButton est sélectionné
    End if
    et pour repasser à l'affichage Effacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CommandButton1_Click()
     
    Dim x As Integer
       Application.ScreenUpdating = False
      x = 0
      CommandButton1.Caption = "Effacer"
    Merci de votre aide

    Dom

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    salut Dom,
    tu peux nous expliciter ton "ne marche pas" stp ?
    une erreur est relevée par Excel ? rien ne se passe ?

    Plus tu nous en dis, plus on sera à meme de te proposer une solution adéquate.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Bonjour jpcheck

    En fait le texte de mon bouton de commande reste toujours "Valider" q' un OptionButton soit coché ou non

    Dans la fenêtre propriétés de ce contrôle, je ne sais pas ce que je dois mettre dans la case caption puisque celle ci est variable.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Et si tu ajoutes un
    ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Avec . Repaint, XL me génère une erreur Menbre de méthode ou de données introuvable


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
     
    Dim x As Integer
     
       Application.ScreenUpdating = False
      x = 0
      'CommandButton1.Caption = "Effacer"
      CommandButton1.Repaint = "Effacer"

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    pardon, j'entendais par là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CommandButton1.Caption = "Effacer"
    CommandButton1.Repaint

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    toujours même message d'erreur
    Je vais rien mettre dans la propriété Caption et
    je vais essayer de mettre une zone de texte sur mon bouton que je ferai varier pour voir

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Domimart jpcheck le forum peut être un truc comme cela!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
    Dim j As Control, i As Byte
    For Each j In Controls
    If TypeName(j) = "OptionButton" Then
    If (j) = True Then i = i + 1
    If i > 0 Then
    CommandButton1.Caption = "valider"
    Else
    CommandButton1.Caption = "effacer"
    End If: End If: Next
    End Sub
    ps il y a quelque chose qui m'intrigue quand meme

    ex un user 3 optionbutton non cocher au depart des que tu en coche un tu peus PAS revenir a false !!!!
    meme si se sont des groupes dans des frames toujours un de cocher par defaut tu confonds pas avec des CheckBoxs????

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Bonjour Laetitia

    Ce sont bien 21 ButtonOption au total repartis en 3 groupes. Mais au chargement du UserForm il n y en a aucun de coché

    Désolé mais le code ne fonctionne pas , l'affichage ne change pas

  10. #10
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re bonjour je viens de tester chez moi ca marche click sur le bouton
    le caption passe a valider si un optionbutton a true meme en simplifier le code par contre comme explique plus haut un fois un optionbutton clicke tu peus pas revenir a false a moins de refaire une boucle sur les optionbutton!!! pour tous les mettre a false
    un code simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    Dim j As Control, i As Byte
    For Each j In Controls
    If TypeName(j) = "OptionButton" Then
    If (j) = True Then CommandButton1.Caption = "valider"
    End If: Next
    End Sub
    a moins que tu veus que le bouton passe a valider des que tu click sur un optionbutton la c'est completement different comme code avoir!!!

    attention le commandbutton1 le caption ="effacer" par defaut"

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Laetitia,

    a moins que tu veus que le bouton passe a valider des que tu click sur un optionbutton la c'est completement different comme code avoir!!!
    c'est justement ça qui m'intéresse merci

  12. #12
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, avec 21 optionbuttons je pense qu'il vaut mieux passer par un module de classe je t'es fait un exemple a adapter j' ai rajoute un double clik sur user pour mettre tous les optionbuttons a false pour eviter une boucle

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Super Laetitia,

    Cela fonctionne vraiment, j'ai remodelé mon projet pour y mettre le module de classe et c'est bon

    Merci bcp

    Simple question pour ma culture personnelle, quelle est la différence entre un module de classe et un module classique ?

    Bon Forum à tous

    Dom

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,
    la solution est évoquée dans la
    http://access.developpez.com/faq/?pa...tandard_ou_cls

  15. #15
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re , en complement dans l'exemple que je t ais donne dans ton cas pas besoin de boucle vu que tu reviens pas a false dans le module de classe
    une simple ligne suffit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Public WithEvents optb As MSForms.OptionButton
    Private Sub optb_Click()
    UserForm4.CommandButton1.Caption = "valider"
    End Sub
    si tu travailles sur des optionbuttons renommees le code est different
    exemple
    dans user
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Dim optb() As New Classe2, x As Byte, j As Control
    Private Sub UserForm_Initialize()
    For Each j In Controls
    If TypeOf j Is MSForms.OptionButton Then
    x = x + 1
    ReDim Preserve optb(1 To x): Set optb(x).optb = j
     End If: Next
    End Sub
    dans module de classe idem...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Public WithEvents optb As MSForms.OptionButton
    Private Sub optb_Click()
    UserForm4.CommandButton1.Caption = "valider"
    End Sub

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Laetitia

    Merci pour tes explications et pour le temps passer sur mon pbm

    Salutation et merci de votre aide à tous

    Dom

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

Discussions similaires

  1. Changer les propriétés Caption des contrôles dans UserForm
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/03/2011, 11h51
  2. Comment changer le nom (.Caption) d'un bouton créé par macro
    Par kernkraft dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2011, 18h36
  3. [XL-2007] Copie de "bouton de commande" via une Macro
    Par boulet67 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/05/2009, 17h34
  4. Réponses: 1
    Dernier message: 07/09/2008, 18h11
  5. peut on changer un bouton de formulaire par une image?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/08/2005, 13h55

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