"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. 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
    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. 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 polux, je met donc ton code dans un module et je supprime mes code du formulaire ?
          merci
          1. tu peux le mettre dans le formulaire mais ce n'est pas très propre ...
            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. 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. 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. 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. 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 , 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. 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, 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,

                              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, ç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. 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. 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. 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