OVH Cloud OVH Cloud

Syntaxe dans le code

5 réponses
Avatar
Stéphan DuQuébec
Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:=889)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de nouveau.

5 réponses

Avatar
Stéphane L.
Bonjour Stéphan,

Et ainsi ? :

dim collcontrol as control

For each CollControl in CollControls.controls
CollControl.Enabled = False
Next

Stéphane.


"Stéphan DuQuébec" a écrit dans le
message de news:
Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:ˆ9)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de
nouveau.




Avatar
Stéphan DuQuébec
Ça ne semble pas fonctionner, malheureusement pour moi.

Merci tout de même.


Bonjour Stéphan,

Et ainsi ? :

dim collcontrol as control

For each CollControl in CollControls.controls
CollControl.Enabled = False
Next

Stéphane.


"Stéphan DuQuébec" a écrit dans le
message de news:
Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:ˆ9)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de
nouveau.









Avatar
Stéphan DuQuébec
Bonjour,

Je réitère ma demande parce que là, je m'enlise vraiment.

Je sais que les contrôles ID que j'ai amenés (847, 889, 945 et 848) font
partie du commandebar "Ply" mais plus j'essaie, pire c'est.

Comment puis-je faire pour les invalider tous les 4 en événement
Workbook_Activate.

Au bord de la crise de nerf.......

Merci.


Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:ˆ9)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de nouveau.




Avatar
anonymousA
bonjour,

Private Sub Workbook_Activate()

arrctrl = Array(847,889,945, 848)
For Each ctrl In arrctrl
Set CollControls = Application.CommandBars.FindControls(ID:=ctrl)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next
Set CollControls = Nothing

Next

End Sub

Private Sub Workbook_Deactivate()

arrctrl = Array(847,889,945, 848)
For Each ctrl In arrctrl
Set CollControls = Application.CommandBars.FindControls(ID:=ctrl)

For I = 1 To CollControls.Count
CollControls(I).Enabled = True
Next
Set CollControls = Nothing

Next

End Sub

mais il faudrait aussi invalider le Insertion/feuille et le
Supprimer/feuille du worksheet Menu Bar et aussi invalider la
possibilité de personnaliser les barres de commandes, ce qui nécéssite
au moins sur cette dernière partie l'usage des API dans le cadre de la
possibilité de retrouver la personnalisation par le double ciquage sur
la zone des barres de commandes. Mais peut-être n'est ce pas nécéssaire
dans ton cas.

A+

Bonjour,

Je réitère ma demande parce que là, je m'enlise vraiment.

Je sais que les contrôles ID que j'ai amenés (847, 889, 945 et 848) font
partie du commandebar "Ply" mais plus j'essaie, pire c'est.

Comment puis-je faire pour les invalider tous les 4 en événement
Workbook_Activate.

Au bord de la crise de nerf.......

Merci.



Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:ˆ9)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de nouveau.






Avatar
Stéphan DuQuébec
AnonymousA,

J'ai lu avec grand intérêt d'autres ficelles de février et septembre 2005 où
tu es intervenu de façon très pertinente. Assez pour me convaincre de ne plus
passer par le chemin de l'invalidation des commandbars mais plutôt par la
protection de classeur pour structure. Comme tu le disais dans ces ficelles,
il n'est pas obligatoire, dans les macros, d'accéder aux feuilles non
visibles pour y opérérer quelques opérations (With), ce qui m'évitera du coup
les fastidieuses et répétitives opérations de protection / déprotection.

Merci beaucoup pour le support offert.


bonjour,

Private Sub Workbook_Activate()

arrctrl = Array(847,889,945, 848)
For Each ctrl In arrctrl
Set CollControls = Application.CommandBars.FindControls(ID:=ctrl)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next
Set CollControls = Nothing

Next

End Sub

Private Sub Workbook_Deactivate()

arrctrl = Array(847,889,945, 848)
For Each ctrl In arrctrl
Set CollControls = Application.CommandBars.FindControls(ID:=ctrl)

For I = 1 To CollControls.Count
CollControls(I).Enabled = True
Next
Set CollControls = Nothing

Next

End Sub

mais il faudrait aussi invalider le Insertion/feuille et le
Supprimer/feuille du worksheet Menu Bar et aussi invalider la
possibilité de personnaliser les barres de commandes, ce qui nécéssite
au moins sur cette dernière partie l'usage des API dans le cadre de la
possibilité de retrouver la personnalisation par le double ciquage sur
la zone des barres de commandes. Mais peut-être n'est ce pas nécéssaire
dans ton cas.

A+

Bonjour,

Je réitère ma demande parce que là, je m'enlise vraiment.

Je sais que les contrôles ID que j'ai amenés (847, 889, 945 et 848) font
partie du commandebar "Ply" mais plus j'essaie, pire c'est.

Comment puis-je faire pour les invalider tous les 4 en événement
Workbook_Activate.

Au bord de la crise de nerf.......

Merci.



Je ne suis pas toujours très fier de mes questions....... Pour l'instant,
j'ai un problème dans la définition de la variable CollControls suivante:

_-_-_-_-_-_-_-_-_-_-_-

Set CollControls = Application.CommandBars.FindControls(ID:ˆ9)

For I = 1 To CollControls.Count
CollControls(I).Enabled = False
Next

_-_-_-_-_-_-_-_-_-_-_-

J'aimerais bien y ajouter les ID 847, 945 et 848 mais je n'y arrive pas.

Ce doit sûrment être simple pour plusieurs mais là, je bute.

Merci à celle ou celui qui voudra bien me remettre sur la "track" de nouveau.