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

Modèle Barre d'outils et macros

14 réponses
Avatar
Christian de BXL
Bonsoir,
A partir d'un classeur,j'ai créé un modèle .xlt.A ce modèle est attaché une
barre d'outils personnalisée,ces outils renvoie à des macros.
Quand je crée un document à partir de mon modèle,les macros affectées aux
outils restent nomées comme si elles appartenaient au premier document
enregistré. L'utilisation de ces outils ouvre ce même document.
Que dois-je faire pour éviter cela?
Dois-je enregistrer ces macros dans le classeur de macro personnelles du
modèle et y affecter les outils?
Dans ce cas, si je dois installer ce modèle de classeur sur plusieurs postes
de travail,ces macros suivront-elles ou devrais-je les installer
mannuellement sur chacun des PC. Les macros enregistrées dans le classeur de
macro personnelles sont-elles attachées à l'ordinateur ou à un classeur?
J'ai difficile à comprendre.
Merci de votre aide
Christian

10 réponses

1 2
Avatar
JB
Bonsoir,

Les barres attachées à un classeur sont transportées avec le classeur
et s'installent automatiquement sur le poste où le classeur est
installé. Ces barres ne sont pas propres au classeur mais au poste.
Mais elles pointent vers les macros du classeur transporté.
Lors d'un clic sur un bouton de la BO, le classeur est ouvert
automatiquement.
Ces BO posent un pb si on déplace le classeur dans un autre
répertoire.

Il est préférable de créer les BO par pgm à l'ouverture du classeur et
de les détruire à la fermeture (sf pour macros utilitaires destinées à
être utilisées dans tout classeur)

Sub auto_open()
Dim barre As CommandBar
Dim bouton As CommandBarControl
Set barre = CommandBars.Add(Name:="BarreBoutons")
barre.Visible = True

Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.Style = msoButtonCaption
bouton.OnAction = "Macro1"
bouton.Caption = "Macro1"

Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.Style = msoButtonCaption
bouton.OnAction = "Macro2"
bouton.Caption = "Macro2"
End Sub

Sub auto_close()
On Error Resume Next
CommandBars("BarreBoutons").Delete
End Sub

Sub macro1()
MsgBox "Macro1"
End Sub

Sub macro2()
MsgBox "Macro2"
End Sub

http://cjoint.com/?bDuVMOEbhR

Cordialement JB

On 29 jan, 20:29, Christian de BXL
wrote:
Bonsoir,
A partir d'un classeur,j'ai créé un modèle .xlt.A ce modèle est a ttaché une
barre d'outils personnalisée,ces outils renvoie à des macros.
Quand je crée un document à partir de mon modèle,les macros affect ées aux
outils restent nomées comme si elles appartenaient au premier document
enregistré. L'utilisation de ces outils ouvre ce même document.
Que dois-je faire pour éviter cela?
Dois-je enregistrer ces macros dans le classeur de macro personnelles du
modèle et y affecter les outils?
Dans ce cas, si je dois installer ce modèle de classeur sur plusieurs p ostes
de travail,ces macros suivront-elles ou devrais-je les installer
mannuellement sur chacun des PC. Les macros enregistrées dans le classe ur de
macro personnelles sont-elles attachées à l'ordinateur ou à un clas seur?
J'ai difficile à comprendre.
Merci de votre aide
Christian


Avatar
Christian de BXL
Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referme à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec le premier
document créé. Si j'exécute une de ces macros directement, elle fonctionne
parfaitement.
Salutations
Christian
Avatar
MichDenis
C'est un problème bien connu et il ne s'applique pas seulement au modèle.

lorsque tu as des boutons dans un barre d'outils qui sont liés aux macros
du classeur, si tu enregistres ton classeur sous un autre nom ou un autre
répertoire, les macros du nouveau classeur fonctionne correctement mais
ceux du classeur source, étonnamment, ne fonctionne plus car le chemin
ou le fichier selon les cas ont été modifiés. Comme ces informations sont
codées en "dur", les macros des boutons se retrouvent avec le chemin et le nom du
fichier que l'on vient de créer.

Pour remettre à jour le chemin et le nom du fichier des macros associées
au bouton dans le classeur source, tu dois dans le classeur source utilisé
un type de macro que ta soumis JB. À l'ouverture du classeur, la macro
réaffecte le bon chemin et le bon nom du classeur à chacun des boutons
pointant sur la bonne location des macros.



"Christian de BXL" a écrit dans le message de news:

Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referme à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec le premier
document créé. Si j'exécute une de ces macros directement, elle fonctionne
parfaitement.
Salutations
Christian
Avatar
JB
Si'il s'agit bien de BO ATTACHEES avec Affichage/Bo/Personnaliser/
Attacher, ces barres seront bien transportées automatiquement avec le
classeur auquel elles ont étés attachées. Mais elles ne sont pas
fermées automatiquement (sauf par programmation).
Elles sont attachées au poste(Affichage/BO les fait apparaître)

JB
On 29 jan, 21:15, Christian de BXL
wrote:
Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referme à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec le premier
document créé. Si j'exécute une de ces macros directement, elle fo nctionne
parfaitement.
Salutations
Christian


Avatar
Benead
Bonsoir Denis,

AMHA il y a plus simple :

1) Attacher la barre d'outils au modèle
2) Lors de la fermeture de ce modèle, supprimer la barre d'outils :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Ma Barre").Delete
On Error GoTo 0
End Sub

Cela règle le problème, mais il ne faut pas ouvrir plusieurs documments issus du modèle en même temps, car cela ne
pourra pas fonctionner...

A+
Benead

MichDenis a écrit:
C'est un problème bien connu et il ne s'applique pas seulement au modèle.

lorsque tu as des boutons dans un barre d'outils qui sont liés aux macros
du classeur, si tu enregistres ton classeur sous un autre nom ou un autre
répertoire, les macros du nouveau classeur fonctionne correctement mais
ceux du classeur source, étonnamment, ne fonctionne plus car le chemin
ou le fichier selon les cas ont été modifiés. Comme ces informations sont
codées en "dur", les macros des boutons se retrouvent avec le chemin et le nom du
fichier que l'on vient de créer.

Pour remettre à jour le chemin et le nom du fichier des macros associées
au bouton dans le classeur source, tu dois dans le classeur source utilisé
un type de macro que ta soumis JB. À l'ouverture du classeur, la macro
réaffecte le bon chemin et le bon nom du classeur à chacun des boutons
pointant sur la bonne location des macros.



"Christian de BXL" a écrit dans le message de news:

Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referme à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec le premier
document créé. Si j'exécute une de ces macros directement, elle fonctionne
parfaitement.
Salutations
Christian





Avatar
MichDenis
Admettons qu'il supprime la barre d'outils attachée au nouveau classeur crée
et que oui, les macros du fichier modèle pointent toujours vers la bonne direction...

ça veux-tu dire que monsieur devra recréer à la main la barre d'outils de chacun
des fichiers qu'il créera avec ce modèle ?

Moi, je pensais qu'il était plus facile de faire exécuter une petite macro à
chaque ouverture du modèle pour faire pointer les macros du boutons
avec le bon chemin et le bon nom du fichier.






"Benead" a écrit dans le message de news:
Bonsoir Denis,

AMHA il y a plus simple :

1) Attacher la barre d'outils au modèle
2) Lors de la fermeture de ce modèle, supprimer la barre d'outils :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Ma Barre").Delete
On Error GoTo 0
End Sub

Cela règle le problème, mais il ne faut pas ouvrir plusieurs documments issus du modèle en même
temps, car cela ne
pourra pas fonctionner...

A+
Benead

MichDenis a écrit:
C'est un problème bien connu et il ne s'applique pas seulement au modèle.

lorsque tu as des boutons dans un barre d'outils qui sont liés aux macros
du classeur, si tu enregistres ton classeur sous un autre nom ou un autre
répertoire, les macros du nouveau classeur fonctionne correctement mais
ceux du classeur source, étonnamment, ne fonctionne plus car le chemin
ou le fichier selon les cas ont été modifiés. Comme ces informations sont
codées en "dur", les macros des boutons se retrouvent avec le chemin et le nom du
fichier que l'on vient de créer.

Pour remettre à jour le chemin et le nom du fichier des macros associées
au bouton dans le classeur source, tu dois dans le classeur source utilisé
un type de macro que ta soumis JB. À l'ouverture du classeur, la macro
réaffecte le bon chemin et le bon nom du classeur à chacun des boutons
pointant sur la bonne location des macros.



"Christian de BXL" a écrit dans le message de news:

Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referme à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec le premier
document créé. Si j'exécute une de ces macros directement, elle fonctionne
parfaitement.
Salutations
Christian





Avatar
JB
Si la fermeture du classeur ne s'effactue pas normalement (coupure de
tension par exemple), Il faudra alors supprimer les BO manuellement
pour revenir dans le cycle normal.

JB
On 29 jan, 21:48, Benead wrote:
Bonsoir Denis,

AMHA il y a plus simple :

1) Attacher la barre d'outils au modèle
2) Lors de la fermeture de ce modèle, supprimer la barre d'outils :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Ma Barre").Delete
On Error GoTo 0
End Sub

Cela règle le problème, mais il ne faut pas ouvrir plusieurs docummen ts issus du modèle en même temps, car cela ne
pourra pas fonctionner...

A+
Benead

MichDenis a écrit:



C'est un problème bien connu et il ne s'applique pas seulement au mod èle.

lorsque tu as des boutons dans un barre d'outils qui sont liés aux ma cros
du classeur, si tu enregistres ton classeur sous un autre nom ou un au tre
répertoire, les macros du nouveau classeur fonctionne correctement ma is
ceux du classeur source, étonnamment, ne fonctionne plus car le chemin
ou le fichier selon les cas ont été modifiés. Comme ces informati ons sont
codées en "dur", les macros des boutons se retrouvent avec le chemin et le nom du
fichier que l'on vient de créer.

Pour remettre à jour le chemin et le nom du fichier des macros associ ées
au bouton dans le classeur source, tu dois dans le classeur source util isé
un type de macro que ta soumis JB. À l'ouverture du classeur, la macro
réaffecte le bon chemin et le bon nom du classeur à chacun des bout ons
pointant sur la bonne location des macros.

"Christian de BXL" a écrit dans le message de news:

Bonsoir JB,
Cela ne s'éclaircit pas pour moi. Je ne comprend pas ton explication.
A l'utilisation de mon modèle, ma barre d'outil s'ouvre (et se referm e à la
fermeture du document), mes macros sont bien dans le classeur mais les
boutons de la BO pointent vers ces mêmes macros enregistrées avec l e premier
document créé. Si j'exécute une de ces macros directement, elle fonctionne
parfaitement.
Salutations
Christian- Masquer le texte des messages précédents -- Afficher le texte des messages précédents -




Avatar
Christian de BXL
Merci de vos avis,µ
Apparement ma question n'est pas simple. Grosso modo, mon modèle devrait
tourner sur trois postes de travail, ma BO personnalisée comporte
actuellement 21 macros (ces macro servent à modifier des mises en pages et à
introduire du texte automatiquement). La macro proposée par JB pour régler
mon problème va vite prendre des proportions importante, dans la mesure ou je
devrai encore rajouter de nouveaux boutons. De plus plusieurs documents issus
de mon modèle pourraient êtres ouverts en même temps, ce qui semble exclure
l'autre solution.
Serait-il envisageable d'enregistrer mes macro dans le classeur de macro
personnelles.
Dans ce cas je devrais le faire sur chacun des postes de travail car je
crois qu'alors les macros sont tributaires du PC et plus du classeur. Mes
macros seraient alors disponibles en permanence dans Excel mais dans la
mesure où je fais apparaitre et disparaitre ma BO personnalisée par une macro
uniquement pour les documents issus de mon modèle cela ne devrait pas
entrainer d'utilisation inadéquate.
Cette solution fonctionnerait-elle au quotidien ou entrainerait-elle
d'autres tracas?
La seule contrainte serait l'obligation d'une installation sur chacun des
postes de travail devant utiliser mon modèle.
Qu'en pensez-vous?
Christian
Avatar
JB
Bonjour,


Voici un exemple de classeur( arreOutilsAttachees.Xls) avec une BO
ATTACHEE (conversion majuscules, minuscules,..):
-On peut installer ce classeur dans un répertoire quelconque.
-Mais NE PAS LE DEPLACER.
-A l'ouverture du classeur, une BO 'BarreUtilitaires' doit apparaître.
Elle est installée sur le poste automatiquement.
-Les macros de ce classeur peuvent être utilisées de n'importe quel
autre classeur. Lors de l'appel de l'une des macros, le classeur
'BarreOutilsAttachees.Xls' sera ouvert automatquement.

http://cjoint.com/?bEiHAvLpDP

Si on veut que la BO n'apparaisse que pour certains classeurs, écrire
dans ceux-ci:

Sub auto_open()
Application.CommandBars("BarreUtilitaires").Visible = True
End Sub

Sub auto_Close()
Application.CommandBars("BarreUtilitaires").Visible = False
End Sub

JB

On 30 jan, 07:11, Christian de BXL
wrote:
Merci de vos avis,µ
Apparement ma question n'est pas simple. Grosso modo, mon modèle devrait
tourner sur trois postes de travail, ma BO personnalisée comporte
actuellement 21 macros (ces macro servent à modifier des mises en pages et à
introduire du texte automatiquement). La macro proposée par JB pour r égler
mon problème va vite prendre des proportions importante, dans la mesure ou je
devrai encore rajouter de nouveaux boutons. De plus plusieurs documents i ssus
de mon modèle pourraient êtres ouverts en même temps, ce qui semble exclure
l'autre solution.
Serait-il envisageable d'enregistrer mes macro dans le classeur de macro
personnelles.
Dans ce cas je devrais le faire sur chacun des postes de travail car je
crois qu'alors les macros sont tributaires du PC et plus du classeur. Mes
macros seraient alors disponibles en permanence dans Excel mais dans la
mesure où je fais apparaitre et disparaitre ma BO personnalisée par u ne macro
uniquement pour les documents issus de mon modèle cela ne devrait pas
entrainer d'utilisation inadéquate.
Cette solution fonctionnerait-elle au quotidien ou entrainerait-elle
d'autres tracas?
La seule contrainte serait l'obligation d'une installation sur chacun des
postes de travail devant utiliser mon modèle.
Qu'en pensez-vous?
Christian


Avatar
Christian de BXL
Merci JB,
J'essayerai ce soir, je ne suis pas à mon poste de travail privé.
Question,ce classeur s'ouvrira automatiquement à l'appel d'une des macro de
la BO,d'accord,mais se ferme-t-il aussi automatiquement,sans demande
d'enregistrer les modifications,lorsqu'on referme le document où l'on a
utilisé la macro.
Je te tiens au courant
Christian
1 2