PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Excel, parcourir une collection
Excel, parcourir une collection
Iniciado por fabrice.schumacher, set., 29 2005 11:43 PM - 3 respostas
Publicado em setembro, 29 2005 - 11:43 PM
Je cherche à parcourir une collection d'objet d'Excel (Application.CommandBars.Item(X).Controls) , je ne trouve pas la commande corespondante à For Each Next de VB
?

Quelqu'un a t-il la solution ?

Merci d'avance.

For Each B In Application.CommandBars.Item(X).Controls
With [A65536].End(xlUp).Offset(1)
.Value = B.Caption
.Offset(, 1).Value = B.ID
End With
Next
Publicado em setembro, 30 2005 - 11:48 AM
Fabrice a écrit :
Je cherche à parcourir une collection d'objet d'Excel (Application.CommandBars.Item(X).Controls) , je ne trouve pas la commande corespondante à For Each Next de VB
?

Quelqu'un a t-il la solution ?

Merci d'avance.

For Each B In Application.CommandBars.Item(X).Controls
With [A65536].End(xlUp).Offset(1)
.Value = B.Caption
.Offset(, 1).Value = B.ID
End With
Next

WinDev ne gère pas (encore) les collections.

il faut par conséquent parcourir tous les items un a un et les
manipulant alors via .Control(indice)

le nombre devrait être disponible via .Controls.Number ou quelquechose
du genre. La suite est dans une boucle FOR NEXT.

dans ce exemple je vous passe la transposition VB en WD (>> et cie)

nb = Application.CommandBars.Item(X).Controls.Number
i est un entier
POUR i=1 à nb
[A65536].End(xlUp).Offset(1).Value =...
Application.CommandBars.Item(X).Control(i).Caption
[A65536].End(xlUp).Offset(1).Offset(, 1).Value =...
Application.CommandBars.Item(X).Control(i).ID
FIN

++ R&B
WDForge.org
Publicado em setembro, 30 2005 - 1:39 PM
Merci beaucoup pour cet éclaircissement.

Maintenant, lorsque je fais appel à une méthode qui me donne comme résultat une collection d'objets, comment recevoir cette collection d'objets ?

par exemple :

Dim C As CommandBarControl
C = CommandBars.FindControls(msoControlButton, 19)

c.item(1).enabled = faux
c.item(2).enabled = faux
...

Comment déclarer 'C' de type CommandBarControl dans WD ?

Merci d'avance pour la précieuse aide apportée.
Publicado em setembro, 30 2005 - 5:18 PM
Bonjour Fabrice

C est un objet automation dynamique
C = CommandBars>>FindControls(msoControlButton, 19)
c>>item(1)>>enabled = faux
c>>item(2)>>enabled = faux


[DrCharly93] www.wdforge.org

Fabrice a écrit :
Merci beaucoup pour cet éclaircissement.

Maintenant, lorsque je fais appel à une méthode qui me donne comme résultat une collection d'objets, comment recevoir cette collection d'objets ?

par exemple :

Dim C As CommandBarControl
C = CommandBars.FindControls(msoControlButton, 19)

c.item(1).enabled = faux
c.item(2).enabled = faux
..

Comment déclarer 'C' de type CommandBarControl dans WD ?

Merci d'avance pour la précieuse aide apportée.