Bonjour,
comment masquer une combobox lorsqu'elle est vide et la faire réapparaitre dans le cas contraire.
merci
a+
Bonjour,
comment masquer une combobox lorsqu'elle est vide et la faire réapparaitre dans le cas contraire.
merci
a+
En testant la plage de cellules qui renseigne ton combo... Pas évident, car très lent pour le nbre de combos que tu as.
Peut-être en comparant la plage elle-même avec une plage identique d'une colonne vide. Visible = ColCombo = ColTest. Pas testé.
Bon, comme maintenant j'ai cette question dans la tête...
C'est vrai, quoi, vous posez un tas de questions et après, nous, comment on fait si on sait pas![]()
A+
ben si tu dis que tu te poses la question, que tu réfléchis
imagine pour moi![]()
![]()
![]()
Pour masquer une combo vide, donc, tu peux vérifier la présence de données dans la colonne, de la ligne 2 à la dernière ligne. Dès qu'est trouvée une donnée -> sorie du test.
Pour ça tu modifies InitCombo(...) en ajoutant la ligne bleue![]()
... et tu ajoutes la macro qui va bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub InitCombo(NoLigne, NoColonne) Dim NomCombo As String Dim Plage As String Sheets("Bd").Activate Plage = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)).Address Call TesterPlageVide(NoLigne, NoColonne NomCombo = "cbox" & NoColonne With ATESTER.Controls(NomCombo) .Value = Cells(1, NoColonne) .RowSource = Plage End With End Sub
Si jamais tu avais dans ton esprit pervers l'idée d'afficher tous tes combox quand tu veux, j'ai la solution mais là, je te laisserai chercher
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub TesterPlageVide(NoLigne, NoCol) Dim C1 As Range, LaCell As Range Dim Ok As Boolean Set C1 = Range(Cells(2, NoCol), Cells(NoLigne, NoCol)) For Each LaCell In C1 Ok = LaCell <> "" If Ok Then Exit For Next ATESTER.Controls("cbox" & NoCol).Visible = Ok End Sub![]()
A+
bonsoir,
j'ai recopié ton code mais aucune réaction
merci a+
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 Sub InitCombo(NoLigne, NoColonne) Dim NomCombo As String Dim Plage As String Sheets("Bd").Activate Plage = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)).Address Call TesterPlageVide(NoLigne, NoColonne) NomCombo = "cbox" & NoColonne With ATESTER.Controls(NomCombo) .Value = Cells(1, NoColonne) .RowSource = Plage End With End Sub Sub TesterPlageVide(NoLigne, NoColonne) Dim C1 As Range, LaCell As Range Dim Ok As Boolean Set C1 = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)) For Each LaCell In C1 Ok = LaCell <> "" If Ok Then Exit For Next ATESTER.Controls("cbox" & NoColonne).Visible = Ok End Sub
Tu as vidé une colonne de la seconde ligne à la dernière ?
Tu as ajouter ) à la fin de ma ligne rouge ?![]()
h non j'avais pas fait ca, ca ok ca marche pas de pb mais dans mon cas lorsque le materiel est sorti est bien j'ai 3 combos qui ne sont pas remplis mais des que le matos rentré ben tout est rempli
donc il faudrait qu'elles réapparaissent des qu'elles ne sont plus vides et elur label aussi![]()
merci a+
Partager