"Griser" Textbox false

Résolu
Bonjour,
j ai dans un formulaire un frame avec 4 boutonsoption qui selon la selection d' 1 bouton permet la saisie dans le textbox correspondant. Mon code fonctionne mais je voudrai "griser" les 3 textbox false pour une meilleure lisibilite

Private Sub BTN_Cheque_click()

TXT_Prelevement.Enabled = False
TXT_Virement.Enabled = False
TXT_Especes.Enabled = False
TXT_ChequeN°.Enabled = True
End Sub

et idem inversé pour les 3 autres

merci
Configuration: Windows XP
Internet Explorer 6.0

20 réponses

  1. Select Case nature
    Case 0
    .TXT_ChequeN°.Enabled = True
    .TXT_Prelevement.BackColor = &HC0C0C0
    .TXT_Prelevement.Enabled = False
    .TXT_Virement.BackColor = &HC0C0C0
    .TXT_Virement.Enabled = False
    .TXT_Especes.BackColor = &HC0C0C0
    .TXT_Especes.Enabled = False
    ETC...
    End Select
    End With
    End Sub
    1. Super génial polux !!!
      je clos ce post... pour en ouvrir un autre pour avancer dans mon projet grace a ton aide precieuse !
      Encore merci et a bientot
      1. Effectivement il faut remettre les textbox à leur état initial, voilà qui devrait le faire.
        Select Case nature 
        Case 0 
        .TXT_ChequeN°.BackColor = &H80000005&
        .TXT_ChequeN°.Enabled = True
        .TXT_Prelevement.BackColor = &HC0C0C0
        .TXT_Prelevement.Enabled = False 
        .TXT_Virement.BackColor = &HC0C0C0
        .TXT_Virement.Enabled = False
        .TXT_Especes.BackColor = &HC0C0C0
        .TXT_Especes.Enabled = False 
        Case 1
        .TXT_ChequeN°.BackColor = &HC0C0C0
        .TXT_ChequeN°.Enabled = False
        .TXT_Prelevement.BackColor = &H80000005&
        .TXT_Prelevement.Enabled = True
        .TXT_Virement.BackColor = &HC0C0C0
        .TXT_Virement.Enabled = False
        .TXT_Especes.BackColor = &HC0C0C0
        .TXT_Especes.Enabled = False 
        
        ETC... 
        End Select 
        End With 
        End Sub 


        "Unload me" ferme l'userform courant et vide la mémoire. Pour recharger, il faut faire UserForm.Show à la suite de Unload me

        ;o)

        polux
        1. re, ça fonctionne !
          j ai du faire copier/coller du code backcolor car il n 'acceptai pas les 0 , j avais &H11& et apres copie j ai :
          &H80000011& = &H80000011 ( sans le &)
          Par contre il me grise bien les 3 textbox false, mais si je change d avis ( selection d un autre bouton radio) les 4 se grisent en laissant toutefois la textbox voulue active.
          j essaie donc de mettre un bouton annuler avec ce code

          Private Sub BTN_Annuler_Click()
          Unload Me

          End Sub

          mais il me ferme l userform alors que je souhaite le decharger tout en le gardant affiché pour une nouvelle saisie.
          y a t il un moyen pour revenir a la derniere textbox remplie ?
          merci
          1. Bonjour,

            Pour griser les cellules il faut faire comme ça :
            Select Case nature 
            Case 0 
            .TXT_ChequeN°.Enabled = True
            .TXT_Prelevement.BackColor = &HC0C0C0
            .TXT_Prelevement.Enabled = False 
            .TXT_Virement.BackColor = &HC0C0C0
            .TXT_Virement.Enabled = False
            .TXT_Especes.BackColor = &HC0C0C0
            .TXT_Especes.Enabled = False 
            ETC... 
            End Select 
            End With 
            End Sub 


            ;o)

            polux
            1. re, j avais oublié de mettre : FRM_Formulaire_de_saisies et maitenat ça fonctionne, je voudrai maintenant attribué la teinte grisée aux textbox false
              merci
              1. Bonjour, oui j ai :
                Erreur de compilation, variable non definie sur : Formulaire_de_saisies

                Option Explicit

                Public nature As Integer

                Public Sub natureBTN()

                With Formulaire_de_saisies
                Select Case nature

                Merci
                1. re , jai mis cela mais ça beug :

                  Module2 :

                  Option Explicit

                  Public nature As Integer

                  Public Sub natureBTN()

                  With Formulaire_de_saisies
                  Select Case nature
                  Case 0
                  .TXT_ChequeN°.Enabled = True
                  .TXT_Prelevement.Enabled = False
                  .TXT_Virement.Enabled = False
                  .TXT_Especes.Enabled = False
                  ETC...
                  End Select
                  End With
                  End Sub

                  et dans userform (formulaire_de_saisies)

                  Private Sub BTN_Cheque_click()
                  Module2.nature = 0
                  Module2.natureBTN

                  End Sub

                  etc ..
                  je me suis "encore" trompé ?
                  merci
                  1. non, il ne fallait changer que Dim natureBTN_variable As Integer par Public nature As Integer, le reste du module2 et de l'UserForm ne change pas ...

                    polux
                    1. re, de cette façon ?

                      dans le module2 :

                      Option Explicit

                      Public nature As Integer

                      Public Sub natureBTN_variable()
                      With Formulaire_de_saisies
                      Select Case natureBTN_variable
                      Case 0
                      .TXT_Prelevement.Enabled = False
                      .TXT_Virement.Enabled = False
                      .TXT_Especes.Enabled = False
                      .TXT_ChequeN°.Enabled = True etc ...

                      et l userform :

                      Private Sub BTN_Cheque_click()
                      Module2.natureBTN_variable = 0
                      Module2.natureBTN

                      End Sub

                      Merci
                      1. bonjour

                        Normal, il n'y a pas de variable globale nommée nature dans le module2 mais natureBTN_variable... et il faut mettre public au lieu de dim pour une variable public ...

                        Option explicit

                        Public nature As Integer

                        Voilà là ça doit fonctionner

                        ;o)

                        Polux
                        1. Bonjour polux et au forum,
                          J ai creer le module 2 dans lequel j ai mis :

                          Option Explicit

                          Dim natureBTN_variable As Integer

                          Public Sub natureBTN()
                          With Formulaire_de_saisies
                          Select Case nature
                          Case 0
                          .TXT_Prelevement.Enabled = False
                          .TXT_Virement.Enabled = False
                          .TXT_Especes.Enabled = False
                          .TXT_ChequeN°.Enabled = True

                          Case 1
                          .TXT_Prelevement.Enabled = False
                          .TXT_Virement.Enabled = False
                          .TXT_Especes.Enabled = True
                          .TXT_ChequeN°.Enabled = False

                          etc...

                          End Select
                          End With
                          End Sub

                          et dans mon userform ( Formulaire_de_saisies) :

                          Private Sub Frame_Nature_Click()

                          End Sub

                          Private Sub BTN_Cheque_click()
                          Module2.nature = 0
                          Module2.natureBTN

                          End Sub

                          Private Sub BTN_Prelevement_click()
                          Module2.nature = 1
                          Module2.natureBTN

                          End Sub
                          etc ..
                          quand je clique sur un des 4 boutons radios il plante sur : .nature= dans le cas cheque

                          Private Sub BTN_Cheque_click()
                          Module2.nature = 0
                          Module2.natureBTN

                          et idem sur les autres codes en fonction de la selection du bouton radio. J ai mal mis les codes ou erreur de saisie ?

                          Merci
                          1. re polux,
                            je dois creer plusieurs modules ? je viens d essayer mais ne maitrise pas vraiment... je me calme pour le we et m y remet semaine prochaine.
                            Merci et bon WE
                            @+
                            1. re polux, je met donc ton code dans un module et je supprime mes code du formulaire ?
                              merci
                              1. re polux, j ai viré tout ce qu il y avait dans le frame nature ainsi que les code des combobox editeur, categorie etc...
                                ça fonctionne avec le code ci dessus, mais connaissant tes capacites : je vais tester tes codes !
                                merci de m aider a avancer dans mon projet
                                @ +
                                1. re,

                                  je viens de lire ton post et j'ai fait un essai dans le fichier. Il y a un gros beug bloquant le programme ... tu as mis dans l'évènement click de la Frame le choix des ratios ... si tu click dans la frame en dehors des ratios ... il y a un beug.

                                  Pour cette question : Dans un module déclare une variable nature en integer. Dans l'évènement click des boutons ratios tu mets: pour le premier module.nature = 0 et dessous module.natureBTN, le 2ème module.nature = 1 et dessous module.natureBTN... etc.
                                  Dans le module tu écris une procédure acec un select case:

                                  Public Sub natureBTN()
                                  With UserForm1
                                     Select Case nature
                                        Case 0
                                           .TXT_Prelevement.Enabled = False 
                                           .TXT_Virement.Enabled = False 
                                           .TXT_Especes.Enabled = False 
                                           .TXT_ChequeN°.Enabled = True 
                                        Case 1
                                           .TXT_Prelevement.Enabled = False 
                                           .TXT_Virement.Enabled = False 
                                           .TXT_Especes.Enabled = True 
                                           .TXT_ChequeN°.Enabled = False
                                  ... etc
                                     End Select
                                  End With
                                  End Sub


                                  ;o)

                                  polux
                                  1. pour unemeilleur lisibilité je te conseil de rendre invisible carrément les deux autres. au lieu de mettre "ennabled" mais "visible" comme ça c'est plus simple
                                    sinon suffit juste de faire Textbox.backcolor = #000000