"Griser" Textbox false

Résolu
Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -  
Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -
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. artragis Messages postés 510 Statut Membre 146
     
    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
    0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  3. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    @ +
    0
  4. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    re polux, je met donc ton code dans un module et je supprime mes code du formulaire ?
    merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    tu peux le mettre dans le formulaire mais ce n'est pas très propre ...
    0
  7. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    @+
    0
  8. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  9. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  10. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  11. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  12. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  13. Polux31 Messages postés 7219 Statut Membre 1 204
     
    tu as un message d'erreur ?
    0
  14. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  15. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  16. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  17. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  18. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
  19. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
  20. Polux31 Messages postés 7219 Statut Membre 1 204
     
    de rien

    ;o)

    polux
    0
  21. Gil369 Messages postés 75 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0