Textbox invisible ou bloqué - VBA

Ofeu Messages postés 26 Statut Membre -  
Ofeu Messages postés 26 Statut Membre -
Bonjour à tous,

J’ai une question qui est plus pour le visuel de mon formulaire :
Voici le fichier
https://www.cjoint.com/c/HHxrdTDPDxh

Si je choisi pour la combobox1 « _C180 » et pour la Combobox2 « Seed/Oil/Fat »
Il apparait des données dans mes textBox (2,3,4 et 5). Ainsi, je pourrais saisir dans les textBox (6,7,8 et 9), la quantité pour chaque donnée.

Cependant, si je sélectionne pour la combobox1 le « _C160 » et pour la Combobox2 le « Seed/Oil/Fat »

Dans la colonne « Entrée » il y a « totalC161int » dans la textBox2 et « C160int » dans la textBox3. Ainsi la textBox6 et textBox7 (en blanc) sont disponible pour la saisir des données. Cependant la TextBox8 et textBox9 sont aussi en blanc et disponible à la saisie.

Je voudrais savoir si c’est possible dans ce cas, mettre la textBox8 invisible et/ou bloquée à la saisir (lorsqu’il n’y a aucune information dans la textBox3). Idem pour la textBox9 en fonction de la textBox4.

Merci beaucoup de vos aides !
A bientôt
Lucas

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Intéresses-toi à aux propriétés Enabled , Visible et Locked de la TextBox

    Voici un exemple à adapter à tes besoins:

    https://docs.microsoft.com/fr-fr/office/vba/outlook/How-to/General/how-to-enable-and-lock-a-text-box-from-user-entry

    0
    1. Ofeu Messages postés 26 Statut Membre
       
      Bonjour Pivert,
      Merci pour l'aide.
      Je trouve les propriétés visible pour un textbox en fonction d'un checkbox. Cependant, je voudrais que ma textbox8 soit en fonction de ma textbox4, c'est à dire, lorsque ma textbox4 est vide, ma textbox8 devient invisible.
      J'ai utilisé les commandes

      Private Sub ComboBox4_Change()
      If ComboBox4.Value = "" Then
      TextBox8.Visible = False
      End If
      End Sub

      mais je n'arrive pas faire disparraitre la textbox8 lorsque la textbox4 est vide.


      Merci d'avance
      Lucas
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Tu n'es pas logique!

      Tu écris:

      mais je n'arrive pas faire disparraitre la textbox8 lorsque la textbox4 est vide.

      et tu mets:

      If ComboBox4.Value = "" Then 


      chercher l'erreur!

      Et ce site te sera très utile

      https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-E

      A utiliser sans modération pour tous les controls
      0
  2. Ofeu Messages postés 26 Statut Membre
     
    Bonjour Pivert

    Effectivement, c'est du textBox !

    Private Sub TextBox4_Change()
    If TextBox4.Value = "" Then
    TextBox8.Visible = False
    End If
    End Sub

    Cependant lorsque ma textBox4 est vide, la textBox8 ne disparait pas.
    En plus j'ai essayé de mettre en focntion AfterUpdate et d'autres fonctions :

    Private Sub TextBox4_AfterUpdate()
    If TextBox4.Value = "" Then TextBox8.Visible = False
    End If
    End Sub

    Private Sub UserForm_Initialize()
    If TextBox4.Value = "" Then TextBox8.Visible = False
    End If
    End Sub

    Private Sub UserForm_Initialize()
    TextBox4.Value = "" Then TextBox8.Visible = False
    End Sub

    Merci pour le site et pour l'attention !

    Bonne journée
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      La propriété Locked de ta TextBox4 est à True, c'est normal que cela ne fonctionne pas!!!!!!!!!!!!
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      et puis fait d'une pierre 2 coups :
      TextBox8.Visible = not (TextBox4.Value = "")
      0
    3. Ofeu Messages postés 26 Statut Membre
       
      Parfait, ça marche très bien avec :

      TextBox8.Visible = not (TextBox4.Value = "")

      Grand Merci de vos disponibilité et patience pour ces débutants en VBA !
      0