Problème VBA --Urgent--
nectar
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Il se trouve que mon application génère une barre d'outils que je ne parviens plus à supprimmer
J'ai effacé toutes les autres barres d'outils, et puis j'ai exécuté ce code pour récupérer l'index de la barre d'outils intempestive :
MsgBox ActiveMenuBar.Index
ce qui me retourne le numéro -4167
est-ce bien normal ???
Comment puis-je effacer cette barre d'outils ?
Si j'essaye avec
Application.CommandBars(-4167).Delete
celà me retourne un message d'erreur code 9 : l'indice n'appartient pas à la selection...
Petit détail : il se peut que ce soit des objets OLE qui affichent cette barre d'outils complétement vide et indestructible....
Il se trouve que mon application génère une barre d'outils que je ne parviens plus à supprimmer
J'ai effacé toutes les autres barres d'outils, et puis j'ai exécuté ce code pour récupérer l'index de la barre d'outils intempestive :
MsgBox ActiveMenuBar.Index
ce qui me retourne le numéro -4167
est-ce bien normal ???
Comment puis-je effacer cette barre d'outils ?
Si j'essaye avec
Application.CommandBars(-4167).Delete
celà me retourne un message d'erreur code 9 : l'indice n'appartient pas à la selection...
Petit détail : il se peut que ce soit des objets OLE qui affichent cette barre d'outils complétement vide et indestructible....
A voir également:
- Problème VBA --Urgent--
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
1 réponse
Bonjour,
Repérer et télécharger le fichier VizioXLA sur cette page :
https://www.excel-downloads.com/resources/categories/utilitaires.18/
Décompresser et lancer ce classeur.
À l'aide du nouveau menu [ Menu des listes ], choisir [ Énumère Barre de Menu ]
Vous obtiendrai ainsi le nom de cette barre d'outils et ensuite appliquer cette routine :
De plus je dois vous souligner que j'ai fait une erreur dans la fonction SupprimeMenu
du classeur VisioXLA, la fonction est défini comme suit :
et devrait plutôt s'écrire comme suit :
Lupin
Repérer et télécharger le fichier VizioXLA sur cette page :
https://www.excel-downloads.com/resources/categories/utilitaires.18/
Décompresser et lancer ce classeur.
À l'aide du nouveau menu [ Menu des listes ], choisir [ Énumère Barre de Menu ]
Vous obtiendrai ainsi le nom de cette barre d'outils et ensuite appliquer cette routine :
Sub SupprimeMenu() Dim Barre As CommandBarControl For Each Barre In Application.CommandBars.ActiveMenuBar.Controls ' Ici, le nom [ Automatisme ] doit être remplacer par le nom de votre barre d'outils. If (Barre.Caption = "Automatisme") Then Barre.Delete End If Next Barre End Sub '
De plus je dois vous souligner que j'ai fait une erreur dans la fonction SupprimeMenu
du classeur VisioXLA, la fonction est défini comme suit :
Function SupprimeMenu(CeMenu As String) As Boolean Dim Cmpt, Nombre As Integer Dim Barre As CommandBarControl Nombre = Application.CommandBars.ActiveMenuBar.Controls.Count For Cmpt = 1 To Nombre If (Application.CommandBars.ActiveMenuBar.Controls.Item(Cmpt).Caption = CeMenu) Then Application.CommandBars("Worksheet Menu Bar").Controls(CeMenu).Delete End If Next Cmpt Cmpt = 0 SupprimeMenu = True Exit_Close: Exit Function Err_Close: MsgBox "Erreur dans la routine SupprimeMenu du classeur VizioXLA!" MsgBox Err.Number & " - " & Err.Description SupprimeMenu = False End Function '
et devrait plutôt s'écrire comme suit :
Function SupprimeMenu(CeMenu As String) As Boolean Dim Barre As CommandBarControl On Error GoTo Err_Close For Each Barre In Application.CommandBars.ActiveMenuBar.Controls If (Barre.Caption = "Menu des Listes") Then Barre.Delete End If Next Barre SupprimeMenu = True Exit_Close: Exit Function Err_Close: MsgBox "Erreur dans la routine SupprimeMenu du classeur VizioXLA!" MsgBox Err.Number & " - " & Err.Description SupprimeMenu = False End Function '
Lupin