Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modification de la propriété d'une combobox...avec for each

1 réponse
Avatar
jaba
Salut à tous...!

J'essaie tant bien que mal de résoudre depuis des jours mais malheureusment
sans résultat.

Je suis en train de construire une feuille de calcul où une combobox VBA me
proposera d'afficher ou de cacher une autre combobox.

j'ai réussi à écrire la code qui suit:

Sub display_hide_2()

Dim Ctrl As MSForms.Control
Dim pos, pos2 As Single
Dim nom As String
Application.ScreenUpdating = False
On Error Resume Next

pos = Worksheets("devis").Cells(10, 5)

pos2 = pos + 1
For Each Ctrl In Sheets("devis").Controls
nom = "combobox" & pos2
If Ctrl.Name = nom And Worksheets("lien").Cells(pos + 1, 3) = 1 Then
nom = Ctrl.Name
Sheets("devis").ActiveControl.Visible = False
End If
If Ctrl.Name = "ComboBox" & pos2 And Worksheets("lien").Cells(pos + 1,
3) = 0 Then Sheets("devis").Ctrl.Visible = True

Next

Je fais donc une routine dans tous les controls de ma feuille et dès que je
tombe sur la combobox qui a été sélectionner précédemment je l'affiche ou je
la cache selon ce qu'il y a dans la cellule cells(pos+1,3).

Donc 1 problème me gène:
je n'arrive pas rendre visible ou invisible le controls .Pour que cela
soient possible il faut impérativement mettre le nom de la combobox tel
Sheets("devis").combobox2.Visible = False

mais à ce moment là, la routine ne sert plus à rien et le code est
interminable.

Y a t 'il un moen de passer outre??'


aider moi svp

jaba

1 réponse

Avatar
jaba
bonsoir...

en fait je me répond à moi meme...au cas ou quelqu'un d'autre ai rencontré
ce problème.

j'ai donc abandonné for each qui de toute ne fonctionnait pas sur la feuille
(apparement que sur une userform). voici le résultat

nom = "combobox" & pos2 ' est le nom de la combobox qui doit etre modifié

If Worksheets("lien").Cells(pos + 1, 3) = 1 Then 'si la cbox est deja
visible, je la cache
ActiveSheet.Shapes(nom).Select
Selection.Visible = False
End If


en fait c'était tout con et je me suis compliqué la vie

a+

Salut à tous...!

J'essaie tant bien que mal de résoudre depuis des jours mais malheureusment
sans résultat.

Je suis en train de construire une feuille de calcul où une combobox VBA me
proposera d'afficher ou de cacher une autre combobox.

j'ai réussi à écrire la code qui suit:

Sub display_hide_2()

Dim Ctrl As MSForms.Control
Dim pos, pos2 As Single
Dim nom As String
Application.ScreenUpdating = False
On Error Resume Next

pos = Worksheets("devis").Cells(10, 5)

pos2 = pos + 1
For Each Ctrl In Sheets("devis").Controls
nom = "combobox" & pos2
If Ctrl.Name = nom And Worksheets("lien").Cells(pos + 1, 3) = 1 Then
nom = Ctrl.Name
Sheets("devis").ActiveControl.Visible = False
End If
If Ctrl.Name = "ComboBox" & pos2 And Worksheets("lien").Cells(pos + 1,
3) = 0 Then Sheets("devis").Ctrl.Visible = True

Next

Je fais donc une routine dans tous les controls de ma feuille et dès que je
tombe sur la combobox qui a été sélectionner précédemment je l'affiche ou je
la cache selon ce qu'il y a dans la cellule cells(pos+1,3).

Donc 1 problème me gène:
je n'arrive pas rendre visible ou invisible le controls .Pour que cela
soient possible il faut impérativement mettre le nom de la combobox tel
Sheets("devis").combobox2.Visible = False

mais à ce moment là, la routine ne sert plus à rien et le code est
interminable.

Y a t 'il un moen de passer outre??'


aider moi svp

jaba