Problème VBA --Urgent--
nectar
Messages postés
14
Statut
Membre
-
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
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
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