Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Anomalie !!

  • Initiateur de la discussion Pricer
  • Date de début
P

Pricer

Guest
bonjour tout le monde,
suite à qlq manips de macros, tous mes fichiers Excel sortent avec plusieurs menus "Fichier" identiques !!
j'aimerais savoir comment rétablir une bare de menus normale ?
merci d'avance pour toute suggéstion.
 
D

DJN90

Guest
Bonjour,

Je suppose que tu parles des barre d'outils.

Une 1ere soluce est d'aller dans "Affichage" -> "Barre d'outils" et de sélectionner celle que tu veux voir.

Maintenant si tu as mis des instructions dans tes macros pour changer les menus, il faut mettre une instruction pour annuler les menus créés. Je pense qu'il serait peut-être souhaitable que tu montres une de tes macros au forum afin de t'aider le plus efficacement possible.

Dan
 
@

@+Thierry

Guest
Salut Pricer, re DNJ90 et le Forum

Huum ça sent les codes qui ont mis la pagaille ... hi hi hi

Bon avec ce code on doit pouvoir remettre la CommandBar principale dans son état d'origine...

Sub RAZ()
Application.CommandBars("Worksheet Menu Bar").Reset
End Sub

ATTENTION ce code remettra la barre des menu dans son état d'origine... (Terminé les menus perso etc)

Sinon si le problème persite virer pûrement le fichier Excel.Xlb... C'est lui qui contient les personalisation des barres d'outils... Il se recréra automatiquement en ré-initialisant Excel dans son état d'origine...(même remarque que précédemment mais pour TOUTES les barres d'outils...D'où l'astuce de se faire une copie de sauvergarde de son Excel.XLB)


Bon App.
@+Thierry
 
P

Pricer

Guest
voici ma macro, une fois je lance le fichier qui la contient et je le referme: n'importe quel fichier Excel que je lance par la suite se voit ajouter un "Fichier" de plus dans la barre d'outils avec incrémentation !

Sub Autpen()
' Masque les feuilles inutiles
Sheets("Présentation").Visible = True
Sheets("volatilité").Visible = False
Sheets("Premium").Visible = False
Sheets("Arbre").Visible = False
Sheets("B&S").Visible = False
Sheets("volatilité").Visible = False

For Each NomMenu In MenuBars(xlWorksheet).Menus
NomMenu.Delete
Next
var = Application.Toolbars.Count
For i = 1 To var
Application.Toolbars(i).Visible = False
Next i

On Error Resume Next
Application.CommandBars("Principale").Delete

Application.Caption = "Application de Calcul financier version 01"
With MenuBars(xlWorksheet)
.Menus.Add Caption:="&Pricer"
With .Menus("&Pricer").MenuItems
.Add Caption:="Cox and Rubinstein", OnAction:="CRS"
.Add Caption:="Black and Scholes", OnAction:="BS"
.Add Caption:="Volatilité implicite", OnAction:="vol"
End With
End With

Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup, ID:=30002, Before:=1

Application.CommandBars.Add(Name:="Principale", Position:=msoBarTop).Visible = True
Application.CommandBars("Principale").Controls.Add Type:=msoControlButton, _
ID:=3, Before:=1
Application.CommandBars("Principale").Controls.Add Type:=msoControlButton, _
ID:=109, Before:=2
Application.CommandBars("Principale").Controls.Add Type:=msoControlButton, _
ID:=4, Before:=3
Application.CommandBars("Principale").Controls.Add Type:= _
msoControlSplitDropdown, ID:=128, Before:=4
Application.CommandBars("Principale").Controls.Add Type:= _
msoControlSplitDropdown, ID:=129, Before:=5
Application.CommandBars("Principale").Controls.Add Type:=msoControlButton, _
ID:=3738, Before:=6

pres.Show
 
@

@+Thierry

Guest
Re

Ton problème vient de :

Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup, ID:=30002, Before:=1

le control ID 30002 est le menu fichier !

bon app
@+Thierry
 
@

@+Thierry

Guest
Re Pricer

la méthode Reset donnée plus haut devrait faire l'affaire non ?


Sinon just for the fun de faire une boucle sur ces controls...

Sub SupprimerMenuFichierEnTrop()
Dim CTRL As Object
For Each CTRL In Application.CommandBars("Worksheet Menu Bar").Controls
If CTRL.ID = 30002 Then CTRL.Delete
Next CTRL

Application.CommandBars("Worksheet Menu Bar").Controls.Add ID:=30002, Before:=1
End Sub

Bon aprèm
@+Thierry
 
@

@+Thierry

Guest
Re Pricer

Tu pourrais me dire si c'est ok et si ça convient...non ?
...avant de poser une nouvelle question... Sans un remerciement...

Pour ton Excel.XLB Tout dépend de la config que tu as...

Sous NT il peut se trouver sous :
C:\Winnt\Profiles\UserName\ApplicationData\Microsoft\Excel...

Sous 2000 Pro
C:\Documents and Settings\UserName\ApplicationData\Microsoft\Excel...

Et puis dans le menu démarrer tu as aussi "Chercher" ce qui sera encore plus simple pour le trouver...

Bon Aprèm
@+Thierry
 
@

@+Thierry

Guest
Re Pricer

Tu devrais préciser ton OS et ta version d'XL...

Tu devrais aussi fairte une recherche sur ton HD avec :

*.XLB

Tu devrais finir par le trouver ce fichier !!

@+Thierry
 
M

Monique

Guest
Bonjour,

avec Excel XP, c'est le même chemin :
C:\Documents and Settings\UserName\ApplicationData\Microsoft\Excel...
mais chez moi, il s'appelle Excel10.xlb
J'espère que c'est la même chose.
 
@

@+Thierry

Guest
Re: Anomalie !! ===> Fichier Excel.xlb

Salut Pricer, Monique, Dan et le Forum

Ben ce fichier sous XP nous fais donc des nouveautés... Il me semble aussi que C@thy nous avait dit que sous sa config elle s'était carrément
"Toto.xlb" (Toto étant le user enregistré)...

Enfin quoi qu'il en soit il porte l'extention XLB.

Sur les différents test que j'ai faits, confirmés par Ti, tu peux carrément supprimer ce fichier. Excel le re-fabriquera au premier démarrage. Bien sûr alors Adieu aux personnalisations !

Il arrive parfois que ce fichier s'altère (surtout quand on joue aux apprentis sorciers en VBA comme nous tous !! ))

Donc je recommande, si on a fait une super Personnalisation de son Excel avec des tas de barres d'outils perso etc... de sauvegarder une Copie quelque part. (De même manière que garde un back up de son Personal.xls si on a bcp de macro dedans)

Celà peut servir aussi dans le cadre du bureau quand le Service IT vous livre enfin le nouveau PC que vous attendiez depuis des années... On copie le XLB et on le remet dans la nouvelle machine...Plutôt que de passer des heures à tout re-personnaliser...

Voilà c'est tout.

Bon Week End
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…