none
Changer le nom d'un bouton de commande lorsque le formulaire sur lequel il réside est ouvert RRS feed

  • Discussion générale

  • Bonjour,

    J'ai un formulaire [Formulaire des paiements-clients] sur lequel j'ai plusieurs boutons, par exemple, "Visa", "Mastercard" et "AmericanExpress"

    Lorsque je presse un bouton de commande nommé "2ePaiement", je voudrais que les noms des boutons deviennent "Visa2", "Mastercard2" et "AmericanExpress2"

    La raison est que sur l'évènement clic de ces boutons, le code effectue des opérations différentes, il y a bien sûr le méthode visible=false et avoir un autre bouton nommé "Visa2" sur lequel visible=true, mais j'ai 4 évènements différents et changer le nom du bouton serait moins ardu que d'avoir 4 boutons Visa et jouer avec les true et false

    Merci et bonne journée à tous

    Claude du Québec

     


    Claude Larocque
    vendredi 13 mai 2011 13:24

Toutes les réponses

  • bonjour Claude,
     
    une solution pourrait être de superposer les 3 boutons de 1 et 2 et de commencer le code du boutons "1ePaiement"
    par:
     
    set bt1 =array("Visa1", "Mastercard1", "AmericanExpress1")
    set bt2 =array("Visa2", "Mastercard2", "AmericanExpress2")
    for i = 0 to 2
    me.controls(bt1(i)).visible = true
    me.controls(bt2(i)).visible = false
    next
     
    et l'inverse pour le bouton "2ePaiement"
     
    --
    isabelle
     
    Le 2011-05-13 09:24, Claude Larocque a écrit :
    > Bonjour,
    >
    > J'ai un formulaire [Formulaire des paiements-clients] sur lequel j'ai plusieurs boutons, par exemple, "Visa", "Mastercard" et "AmericanExpress"
    >
    > Lorsque je presse un bouton de commande nommé "2ePaiement", je voudrais que les noms des boutons deviennent "Visa2", "Mastercard2" et "AmericanExpress2"
    >
    > La raison est que sur l'évènement clic de ces boutons, le code effectue des opérations différentes, il y a bien sûr le méthode visible=false et avoir un autre bouton nommé "Visa2" sur lequel visible=true, mais j'ai 4 évènements différents et changer le nom du bouton serait moins ardu que d'avoir 4 boutons Visa et jouer avec les true et false
    >
    > Merci et bonne journée à tous
    >
    > Claude du Québec
    >
    > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    > Claude Larocque
     
    samedi 14 mai 2011 03:20
  • Merci encore Isabelle,

    Voilà, j'essayais de mettre ma question plus claire pour ne pas compliquer les choses, mais voici le cas réel

    J'ai 4 boutons Visa, Visa1,2, 3 et 4

    4 Mastercard, 4 Amex, 4 Discover, 4 Diners club, 4 Interact, 4 Comptant, 4 chèques, donc 32 boutons surperposés un sur l'autre. J'utilise présentement la méthode .visible car c'est la seule que j'avais jusqu'à ce que tu me conseilles les arrays.

    Si je comprends bien, la méthode array va changer le nom du bouton?

    J'ai du mal à saisir le bt1 et le bt2

    Prenons pas exemple mes Visas, j'ai Visa1, Visa2, Visa3 et Visa4 qui ont tous un code différent, Visa1 est utilisé lorsque l'usager ne se sert que d'une carte de crédit pour faire son paiement. Visa2 est utilisé lorsque le client se sert de 2 méthodes de paiement. Visa3 est utilisé lorsque l'usager combine des factures et ne se sert que d'une carte pour le paiement et finalement Visa4 est utilisé lorsque l'usager combine les factures et se sert de 2 méthodes de paiements.

    Lorsque l'utilisateur combine les factures, en pressant le bouton CombinerLesFactures, les boutons 3 doivent être visible et les autres non visible.

    Si l'utilisateur se sert de 2 méthodes de paiement, il presse le bouton 2ePaiement et les boutons 4 doivent être visible et les autres invisibles.

    Cela prend une gymnastique de saint pour y parvenir, mais je suis un habitué de ces méthodes et je pourrais y parvenir, cependant, je suis ouvert à améliorer ces procédures.

    Si tu pouvais m'éclairer un peu plus sur les arrays, je t'en saurais gré....merci beaucoup

    Claude

     

     

     

     


    Claude Larocque
    samedi 14 mai 2011 05:23
  • bonjour Claude,
     
    Array ne change pas le nom du bouton, mais c'est utile pour "stoké" les nom et les appelez dans une boucle.
    mais d'apres ce que tu vient de dire, j'obterais pour,
     
    Set MaListe =Array("Visa", "Mastercard", "AmericanExpress", "Amex", "Discover", "Diners_club", "Interact", "Comptant", "chèques")
     
    for i = LBound(MaListe) to UBound(MaListe)
    me.controls(bt1(i) & "1").visible = true
    me.controls(bt2(i) & "2").visible = false
    me.controls(bt2(i) & "3").visible = false
    me.controls(bt2(i) & "4").visible = false
    next
     
    mais je n'ai pas très bien compris les conditions pour mettre True ou False
     
    ps/ je suis à sherbrooke
    --
    isabelle
     
    Le 2011-05-14 01:23, Claude Larocque a écrit :
    > Merci encore Isabelle,
    >
    > Voilà, j'essayais de mettre ma question plus claire pour ne pas compliquer les choses, mais voici le cas réel
    >
    > J'ai 4 boutons Visa, Visa1,2, 3 et 4
    >
    > 4 Mastercard, 4 Amex, 4 Discover, 4 Diners club, 4 Interact, 4 Comptant, 4 chèques, donc 32 boutons surperposés un sur l'autre. J'utilise présentement la méthode .visible car c'est la seule que j'avais jusqu'à ce que tu me conseilles les arrays.
    >
    > Si je comprends bien, la méthode array va changer le nom du bouton?
    >
    > J'ai du mal à saisir le bt1 et le bt2
    >
    > Prenons pas exemple mes Visas, j'ai Visa1, Visa2, Visa3 et Visa4 qui ont tous un code différent, Visa1 est utilisé lorsque l'usager ne se sert que d'une carte de crédit pour faire son paiement. Visa2 est utilisé lorsque le client se sert de 2 méthodes de paiement. Visa3 est utilisé lorsque l'usager combine des factures et ne se sert que d'une carte pour le paiement et finalement Visa4 est utilisé lorsque l'usager combine les factures et se sert de 2 méthodes de paiements.
    >
    > Lorsque l'utilisateur combine les factures, en pressant le bouton CombinerLesFactures, les boutons 3 doivent être visible et les autres non visible.
    >
    > Si l'utilisateur se sert de 2 méthodes de paiement, il presse le bouton 2ePaiement et les boutons 4 doivent être visible et les autres invisibles.
    >
    > Cela prend une gymnastique de saint pour y parvenir, mais je suis un habitué de ces méthodes et je pourrais y parvenir, cependant, je suis ouvert à améliorer ces procédures.
    >
    > Si tu pouvais m'éclairer un peu plus sur les arrays, je t'en saurais gré....merci beaucoup
    >
    > Claude
    >
    > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    > Claude Larocque
     
    samedi 14 mai 2011 12:55
  • correction
    il faut changer cette ligne
    Set MaListe =Array("Visa", "Mastercard", "AmericanExpress", "Amex", "Discover", "Diners_club", "Interact", "Comptant", "chèques")
    par
    MaListe =Array("Visa", "Mastercard", "AmericanExpress", "Amex", "Discover", "Diners_club", "Interact", "Comptant", "chèques")
     tu pourrais aussi utiliser un control ListBox
     
    [code]
    Private Sub UserForm_Initialize()
    MaListe = Array("Visa", "Mastercard", "AmericanExpress", "Amex", "Discover", "Diners_club", "Interact", "Comptant", "chèques")
     
    For i = LBound(MaListe) To UBound(MaListe)
    ListBox1.AddItem (MaListe(i))
    Next
     
    ListBox1.MultiSelect = fmMultiSelectMulti
    End Sub
     
    Private Sub CommandButton1_Click()
    Dim LesSélections()
    'vérifier ce qui est sélectionner
    For i = 0 To Me.ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
             ReDim Preserve LesSélections(x)
             LesSélections(x) = ListBox1.List(i)
             check = check & LesSélections(x) & Chr(10)
             x = x + 1
        End If
    Next i
     
    MsgBox "Vous avez sélectionné : " & Chr(10) & check
     
    'enlever les sélections
    For i = 0 To Me.ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then ListBox1.Selected(i) = False
    Next i
    End Sub
    [/code]
     --
    isabelle
     
     
    samedi 14 mai 2011 15:32
  • Bonjour à  tous,

    Je vous propose, si vous le permettez, une autre approche. Celle-ci est basée sur la combinaison de deux types de contrôles, Un groupe de boutons radio et vos boutons de commande.

    Le groupe de boutons radio vous permet de définir le niveau ou l'ordre de payement 1er payement, 2ème payement ... . Il vous suffit en suite de récupérer l'option choisie et à l'aide d'un simple If/Then exécuter la portion de code appropriée.

    Exemple de procédure :
    -----------------------------------------------------
    Private Sub cmdMasterCard_Click()
       
        If OptionButton1 = True Then
            ' Traitement pour un 1er payement MasterCard
            ' Code ...
           
        End If
       
        If OptionButton2 = True Then
            ' Traitement pour un 2ème payement MasterCard
            ' Code ...
       
        End If
       
        If OptionButton3 = True Then
            ' Traitement pour un 3ème payement MasterCard
            ' Code ...
       
        End If

        ' Suite de traitement
        ' Code ...
       
    End Sub
    -----------------------------------------------------------


    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users
    dimanche 15 mai 2011 14:07
  • Merci beaucoup

    J'ai pu régler ce problème en partie grâce à vos conseils

    Bonne journée

     


    Claude Larocque
    lundi 16 mai 2011 20:35