Textbox invisible ou bloqué - VBA

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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

    1. 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
    2. Contributeur
      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
  2. 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
    1. Contributeur
      La propriété Locked de ta TextBox4 est à True, c'est normal que cela ne fonctionne pas!!!!!!!!!!!!
    2. Contributeur
      Bonjour,

      et puis fait d'une pierre 2 coups :
      TextBox8.Visible = not (TextBox4.Value = "")
    3. 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 !