Bonjour le forum,
J'ai un problème que je n'arrive pas à solutionner
Sur un formulaire, j'ai :
- 1 ComboBox
- 1 ListBox
- 1 TextBox
En fonction de la valeur de la ComboBox, la ListBox OU la TextBox est visible. Ces deux dernières ont dans leurs propriétés TAG chacune le numéro de colonne dans laquelle elles doivent renvoyer la valeur saisie via le code suivant :
Problème : c'est toujours la ListBox qui renvoie sa valeur même quand je la désactive avec ListBox.Enabled = False et ListBox.Visible = False
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub CommandButton1_Click() Dim O As Worksheet 'déclare la variable O (Onglet) Dim DL As Integer 'déclare la variable DL (Dernière Ligne) Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe) Set O = Worksheets("Général") 'définit l'ongle O Application.ScreenUpdating = False 'masque les rafraîchissements d'écran For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm Next CTRL 'prochain contrôle de la boucle 'définit la ligne LI (première ligne vide de la colonne 2 (=B) de l'onglet O LI = O.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm 'si la propriété [Tag] du contrôle n'est pas vide renvoie sa valeur dans la ligne I colonne Tag du contrôle de l'onglet O If CTRL.Tag <> "" Then O.Cells(LI, CByte(CTRL.Tag)) = CTRL.Value Next CTRL 'prochaine contrôle de la boucle Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran MsgBox "Les données ont été enregistrées avec succés" 'message Unload Me 'vide et ferme l'UserForm End Sub
Je voudrais pouvoir réellement récupérer la valeur de l'un OU de l'autre.
Le code (sûrement un peu sale...) :
Si une bonne âme pouvait passer par là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub ComboBox4_Change() If ComboBox4 = "Commande" Or ComboBox4 = "Réservation" Then ListBox1.Enable = False ListBox1.Visible = False TextBox11.Visible = True TextBox11.Enabled = True End If If ComboBox4 = "Commande sur réservation" Then ListBox1.Visible = True ListBox1.Enabled = True TextBox11.Enabled = False TextBox11.Visible = False End If End Sub
Merci !!
Partager