OVH Cloud OVH Cloud

création d'une forme générique

2 réponses
Avatar
Dude
Bonjour,

j'essaie de créer une barre de navigation présente sur toutes les feuilles
d'un classeur Excel (un peu la notion de "frame" dans une page HTML).
Cette barre comporte plus ou moins de boutons en fonction d'un login fait à
l'ouverture du classeur.

Pour l'instant je définis cette barre sur la première page, puis je la
reproduis sur chacune des pages :

Sheets(1).Shapes("barrenav").Copy
For i = 2 To Worksheets.Count
Sheets(i).Select
Range("A1").Select
On Error Resume Next
ActiveSheet.Shapes("barrenav").Delete
ActiveSheet.Paste
Next

Cela fonctionne, mais trois inconvénients :
1 - c'est long
2 - certaines macros se déclenchent à l'activation d'un onglet, ce qui n'est
pas l'effet souhaité
3 - cela donne éventuellement accès à certaines pages qui ne devraient pas
être vues par l'utilisateur en question.

Y aurait-il par hasard un moyen de créer ou de modifier une forme "parent"
(à l'instar des msoForms par exemple) dont la modification se répercute
ensuite sur tous les "enfants" ?

2 réponses

Avatar
Hervé
Salut Dude,
Et une simple barre d'outils ?
Hervé.

"Dude" a écrit dans le message news:

Bonjour,

j'essaie de créer une barre de navigation présente sur toutes les feuilles
d'un classeur Excel (un peu la notion de "frame" dans une page HTML).
Cette barre comporte plus ou moins de boutons en fonction d'un login fait
à

l'ouverture du classeur.

Pour l'instant je définis cette barre sur la première page, puis je la
reproduis sur chacune des pages :

Sheets(1).Shapes("barrenav").Copy
For i = 2 To Worksheets.Count
Sheets(i).Select
Range("A1").Select
On Error Resume Next
ActiveSheet.Shapes("barrenav").Delete
ActiveSheet.Paste
Next

Cela fonctionne, mais trois inconvénients :
1 - c'est long
2 - certaines macros se déclenchent à l'activation d'un onglet, ce qui
n'est

pas l'effet souhaité
3 - cela donne éventuellement accès à certaines pages qui ne devraient pas
être vues par l'utilisateur en question.

Y aurait-il par hasard un moyen de créer ou de modifier une forme "parent"
(à l'instar des msoForms par exemple) dont la modification se répercute
ensuite sur tous les "enfants" ?




Avatar
Dude
Hello Hervé,

Effectivement c'est une solution, seulement le "design" d'une barre d'outils
est un peu limité et vu que je compte beaucoup là-dessus j'aimerais éviter.
Merci pour ton aide

Dude
(pour info, je vais également poster ce thread dans le groupe
"developper.vba". Mille excuses pour cette entorse à la netiquette)


"Hervé" wrote in message
news:%
Salut Dude,
Et une simple barre d'outils ?
Hervé.

"Dude" a écrit dans le message news:

Bonjour,

j'essaie de créer une barre de navigation présente sur toutes les
feuilles
d'un classeur Excel (un peu la notion de "frame" dans une page HTML).
Cette barre comporte plus ou moins de boutons en fonction d'un login fait
à

l'ouverture du classeur.

Pour l'instant je définis cette barre sur la première page, puis je la
reproduis sur chacune des pages :

Sheets(1).Shapes("barrenav").Copy
For i = 2 To Worksheets.Count
Sheets(i).Select
Range("A1").Select
On Error Resume Next
ActiveSheet.Shapes("barrenav").Delete
ActiveSheet.Paste
Next

Cela fonctionne, mais trois inconvénients :
1 - c'est long
2 - certaines macros se déclenchent à l'activation d'un onglet, ce qui
n'est

pas l'effet souhaité
3 - cela donne éventuellement accès à certaines pages qui ne devraient
pas
être vues par l'utilisateur en question.

Y aurait-il par hasard un moyen de créer ou de modifier une forme
"parent"
(à l'instar des msoForms par exemple) dont la modification se répercute
ensuite sur tous les "enfants" ?