Bonjour,
J'ai intégré dans une macro un Userform, renommé Milestone_Edit, qui contient 2 lignes de 8 Textbox , un bouton "Edit", un bouton "Next" et un bouton "Close".
Dans la ligne supérieure je vais rechercher les valeurs de données situées sur une feuille Excel, certaines TextBox ne contiennent pas de valeurs et ce ne sont pas toujours les mêmes.
J'interdit la saisie dans les TextBox du Haut.
Si une texte Box de la ligne supérieure est vide j'interdit la saisie de donnée la TextBox correspondante de la ligne du bas et lui affecte une couleur grise.
Après avoir corrigé le code dont le grisage ne fonctionnait pas comme souhaité ( Philippe Tulliez ), j'ai essayé de le simplifier, par curiosité et pour m'améliorer, en utilisant le code suivant mais cela ne fonctionne pas et me renvoie une erreur "Propriété ou Méthode non gérée par cet objet"
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
23
24
25
26
27
28
29
30
31
32
33 For i = 0 To 16 If Equipment_Edit.ComboBox1.Value = BL.Offset(i, 0) Then Milestone_Edit.Label13.Caption = Equipment_Edit.ComboBox1.Value Milestone_Edit.TextBox9.Value = "" Milestone_Edit.TextBox9.Value = BL.Offset(i, 3) Milestone_Edit.TextBox9.Enabled = False If Milestone_Edit.TextBox9.Value = "" Then Milestone_Edit.TextBox1.Enabled = False Milestone_Edit.TextBox9.BackColor = &H80000016 Milestone_Edit.TextBox1.BackColor = &H80000016 Else Milestone_Edit.TextBox1.Enabled = True Milestone_Edit.TextBox9.BackColor = &H80000005 Milestone_Edit.TextBox1.BackColor = &H80000005 End If ..... Milestone_Edit.TextBox16.Value = "" Milestone_Edit.TextBox16.Value = BL.Offset(i, 10) Milestone_Edit.TextBox16.Enabled = False If Milestone_Edit.TextBox16.Value = "" Then Milestone_Edit.TextBox8.Enabled = False Milestone_Edit.TextBox8.BackColor = &H80000016 Milestone_Edit.TextBox16.BackColor = &H80000016 Else Milestone_Edit.TextBox8.Enabled = True Milestone_Edit.TextBox16.BackColor = &H80000005 Milestone_Edit.TextBox8.BackColor = &H80000005 End If End If Next i
Merci pour votre aide et vos conseils
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim y As OLEObject For Each y In Milestone_Edit If y.Value = "" Then y.Object.BackColor = vbGray End If Next y
Eric
Partager