gestion, mise à jour menu personnalisé

P

papyjo

Guest
Bonjour
Sur un fichier Excel partagé, j'utilise une barre menu personnalisée pour lancer de petites macros stockées dans ce classeur. la barre macro est attachée au fichier utilisé par une dizaine de personnes.
Pbl : si je renomme le fichier, le change de répertoire, fait un enregistrer sous, ou si je modifie le menu..... ce menu ne se met pas à jour chez tous les utilisateurs.
Excel semble prendre par défaut le menu personnalisé stocké sur le poste.

La réparation, actuellement, consiste à reaffecter, un à un, et pour chaque utilisateur les boutons au macros du classeur ouvert. (ce classeur ald du chemin réseau)
Ou alors pour chaque utilisateur, détruire le menu personnalisé, qui se réinitialise à l'ouverture du fichier.

Connaissez vous une méthode pour que Excel prenne par défaut le menu personnalisé qui arrive avec le fichier et non le menu de même nom demeuré sur le poste ???

Actuellement j'ai dans this workbook:
Private Sub Workbook_Open()
Application.CommandBars("T7kit").Visible = True
Sheets("modele").Visible = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("T7kit").Visible = False
End Sub

Suis-je assez clair :)-D En tout cas merci de m'avoir lu jusqu'ici
Papyjo
 
C

Creepy

Guest
Hello,

J'ai eu un peu le même souci, avec une macro complémentaire.

En faites lorsque tu vas chercher une macro complémentaire il te demande si tu souhaites la copier sur le poste. L'utilisateur doit repondre NON, sinon Excel prendra par defaut la version sur le poste local.
Mais parfois l'utilisateur est capricieux et malgré ce que tu lui dis il repond OUI et paffffff...

Tu as donc plusieurs techniques :

Trouver la commande pour empecher l'affichage de cette boite de dialogue
et forcer le NON pour rester sur le reseau

Moi j'ai opté pour autre chose.
1 - lors du premier lancement j'ecris dans la BdeR la version que j'ai definis
2 - Apres à chaque ouverture, je demande de vérifier la version par rapport à un document texte qui se trouve sur un lecteur fixe du reseau. si la version differe, je delete la macro sur le poste, recopie la bonne version, et regenere mon menu. Sans oublier de mettre a jour la base de registre

je ne suis pas au bureau, mais je te copie un bout de code qui vérifie la version pour une mise à jour et afficher une what's news. c'est le même principe adapte le !!

++

Creepy

----------------------------------

Private Sub Workbook_Open()
Application.StatusBar = "SecoTools v2.75 Installée"
Call CreateMenu
Dim FichierVer, VerBdeR, VersionActu, FirstTime As String
Dim Val As Variant

On Error Resume Next
VersionActu = "V2.75"
FirstTime = GetSetting("Secotools", "Init", "FirstTime", "Oui")

If FirstTime = "Oui" Then
FichierVer = "G:\Public\Secotools\FirstOpen.txt"
SaveSetting "SecoTools", "Init", "FirstTime", "Non"
SaveSetting "SecoTools", "Init", "Version", VersionActu
Whatsnew.Caption = "What's New SecoTools : " & VersionActu
Whatsnew.TextNews.Text = ""
Open FichierVer For Input As #1
Val = FileLen(FichierVer)
Cible = Input(Val, 1)
Close #1
Whatsnew.TextNews.Text = Cible
Whatsnew.Show
Whatsnew.TextNews.Enabled = True


End If

If FirstTime = "Non" Then
VerBdeR = GetSetting("SecoTools", "Init", "Version")
FichierVer = "G:\Public\Secotools\WhatsNew.txt"
If VersionActu > VerBdeR Then
Whatsnew.Caption = "What's New SecoTools : " & VersionActu
Whatsnew.TextNews.Text = ""
Open FichierVer For Input As #1
Val = FileLen(FichierVer)
Cible = Input(Val, 1)
Close #1
Whatsnew.TextNews.Text = Cible
Whatsnew.Show
DeleteSetting "SecoTools", "Init", "Version"
SaveSetting "SecoTools", "Init", "Version", VersionActu
End If

If VersionActu < VerBdeR Then
MsgBox "Anomalie de Version, votre version est plus récente que celle présente sur le serveur, Contactez le xxxx", vbCritical + vbOKOnly, "Attention ..."
End If
End If
End Sub
 
P

papyjo

Guest
Merci pour cette info qui va me servir par ailleur lorsque je l'aurai digérée (dur pour moi).
Mais je ne passe pas par une macro complémentaire, ma macro arrive liée au fichier, mais n'est pas prise en compte au bénéfice de celle qui existe déja de même nom sur le poste.

En fait il semble que j'ai 2 versions du meme menu et que Excel prend la plus ancienne.
J'essaie bien de faire un delete du dit menu, mais j'efface tout (vieille version et nouvelle)

Je cherche surtout un parametre pour lui dire : prend la version qui est collée au fichier. du style
For Each bar In Application.CommandBars
If Not bar.BuiltIn And Not bar.Visible And "ancienne version"Then bar.Delete
Next
Merci encore à tous de votre attention
papyjo
 

Discussions similaires

Statistiques des forums

Discussions
312 570
Messages
2 089 768
Membres
104 271
dernier inscrit
acuponctus