Desactivation textbox userform selon conditions

bonjour et Bonne année a tous

Je me suis posé la question quant a la possibilité de desactivé ou gelé, colorié une textbox (et son label) d'un USERFORM

(enfin montrer que la textbox dans le userform ne doit pas etre utilisé ) a l'aide d'un bouton de commande .

Selon son etat enfoncé ou relaché .J'espere avoir été claire

Merci (je vous joint un fichier excel).

103userform.zip (11.82 Ko)

Bonsoir à tous,

Bonsoir Julia,

Ci-dessous, la macro modifiée pour le ToggleButton OUI/NON :

Private Sub ToggleButton1_Click()
ToggleButton1.Caption = IIf(ToggleButton1, "NON", "OUI")
With UserForm1
  .Label1.Visible = IIf(ToggleButton1, False, True)
  .TextBox1.Visible = IIf(ToggleButton1, False, True)
  .Label2.Visible = Not .Label1.Visible
  .TextBox2.Visible = Not .TextBox1.Visible
End With
End Sub

Cordialement.

Bonjour et merci a toi c super sa fonctionne hihi ,

Cependant je suis pas super douée , pourait tu m'expliquer comment tu as procédé , par exemple pourquoi as tu utilisé l'instruction IIf?

J'esperais aussi pouvoir redimensionner le Userform apres suppression du label et du textBox , j'ai pas trouvée la propriété autosize de l'userform :s , j'imagine que ce n'est pas comme sa qu'il faut si prendre...

Merci d'avance

Cordialement

Bonsoir à tous,

Bonsoir Julia,

L'instruction Iif est une contraction de If...Then...Else...End If.

Je l'utilise couramment lorsque je n'ai que deux états à définir :

Ex : ToggleButton1.Caption = IIf(ToggleButton1, "NON", "OUI")

Cette condition teste si ToggleButton1 est actif. Si c'est le cas, son Caption est NON, sinon il affiche OUI. J'ai encore réduit le code en longueur en écrivant Iif(ToggleButton1, "NON", "OUI") car la propriété par défaut étant .Value je ne l'ai pas mentionnée.

Pour mieux comprendre, j'aurais pu écrire le code comme ceci :

If ToggleButton1.Value = True Then
  ToggleButton1.Caption = "NON"
  Else
  ToggleButton1.Caption = "OUI"
End If

Le principe est le même pour la syntaxe suivante :

.Label2.Visible = Not .Label1.Visible

qui est équivalent à :

If .Label2.Visible = True Then
  .Label1.Visible = False
  Else
  .Label1.Visible = True
End If

Concernant le redimensionnement du formulaire, je te propose une autre idée :

Tu superposes exactement les 2 labels et les 2 textbox puisqu'il ne peut y en avoir qu'un seul visible à la fois. Ainsi, plus besoin de redimensionner l'userform.

Cordialement.

Bonjour,

Je m'incruste un peu

Pour le IIF ce serait un peu l'équivalent de la fonction Choix (Choose) :

ToggleButton1.Caption = Choose(ToggleButton1 + 2, "NON", "OUI")

+ 2 car la fonction n'accepte pas un indice inférieur à 1.

Pour ce qui est de tes TextBox et Labels, pourquoi en utiliser deux alors que c'est soit l'un soit l'autre ? C'est sur la récup de la valeur du TextBox qui te faut agir en fonction de ton bouton bascule, enfin, je pense.

Hervé.

Bonjour et merci a vous

La superposition etait une excellente idée a la fois astucieuse et écolo 8)

Vos explications m'ont permis de progresser . C'est genial hihi

Je vous remercie.

Cordialement

Julia

Rechercher des sujets similaires à "desactivation textbox userform conditions"