OVH Cloud OVH Cloud

barre de menu

5 réponses
Avatar
Pascal16
Bonjour

je souhaite parcourir l'ensembles des controles (et sous controles)
d'une barre de menu "barSAP" que je cr=E9 par VBA.Voici le code que
j'utilise :

For Each ctl In Application.CommandBars("barSAP").Controls
titre =3D CStr(ctl.Caption)
If ctl.Controls.Count > 0 Then
For Each sctl In ctl.Controls
MsgBox ctl.Caption
Next sctl
End If
Next ctl

la 3=E8me ligne me renvoit une erreur ...
Je ne comprends pas pourquoi ?

Qui peut m'aider ?

D'avance merci.

Pascal

5 réponses

Avatar
JLuc
AMHA, dans ta boucle, ctl est en fait UN control. Je ne pense pas que
tu puisse utiliser la propriete .Count

Pascal16 avait soumis l'idée :
Bonjour

je souhaite parcourir l'ensembles des controles (et sous controles)
d'une barre de menu "barSAP" que je cré par VBA.Voici le code que
j'utilise :

For Each ctl In Application.CommandBars("barSAP").Controls
titre = CStr(ctl.Caption)
If ctl.Controls.Count > 0 Then
For Each sctl In ctl.Controls
MsgBox ctl.Caption
Next sctl
End If
Next ctl

la 3ème ligne me renvoit une erreur ...
Je ne comprends pas pourquoi ?

Qui peut m'aider ?

D'avance merci.

Pascal



--
JLuc

Avatar
Pascal16
ctl est un control mais j'utilise ctl.controls, donc j'applique count
à la collection de controles de ctl ... non ?
Avatar
JLuc
Pascal16 avait soumis l'idée :
ctl est un control mais j'utilise ctl.controls, donc j'applique count
à la collection de controles de ctl ... non ?


Peut etre qu'il faut tester si ton control possede d'autres controles
avant. Si oui, faire ton test sur .Count 8-o
Mais là, je ne peut pas t'en dire plus
JLuc

--
JLuc

Avatar
Pascal16
que veux tu dire par .Count 8-o ???
Avatar
JLuc
Pascal16 avait soumis l'idée :
que veux tu dire par .Count 8-o ???


Parce que tu utilises :
If ctl.Controls.Count > 0 Then
Je me plante ou tu as dis que l'erreur etait sur cette ligne ?

--
JLuc