Je reçois le message suivant lorsque la méthode onAction de mon bouton VBA est appelée. La macro peut ne pas être disponible dans ce classeur ou toutes les macros peuvent être désactivéesPourquoi mon bouton VBA se comporte-t-il étrangement lors d'un appel onAction?
Dans le test.xlsm dans ThisWorkbook fichier J'ai un code très simple
Option Explicit
Private Sub Workbook_Open()
UpdateMenuSR
End Sub
Private Sub UpdateMenuSR()
Dim cb As CommandBarButton
Dim Solver As CommandBar
For Each Solver In Application.CommandBars
If Solver.name = "Test" Then Exit Sub
Next Solver
Set Solver = Application.CommandBars.Add("Test", msoBarFloating, False)
With Solver
.Visible = True
With .Controls
Set cb = .Add(Type:=msoControlButton)
With cb
.FaceId = 31
.Visible = True
.OnAction = "!b"
End With
Set cb = .Add(Type:=msoControlButton)
With cb
.FaceId = 19
.Visible = True
.OnAction = "!c"
End With
Set cb = .Add(Type:=msoControlButton)
With cb
.FaceId = 30
.Visible = True
.OnAction = "!a"
End With
Set cb = .Add(Type:=msoControlButton)
With cb
.FaceId = 8
.Visible = True
.OnAction = "!d"
End With
End With
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ctrl As CommandBarControl
Application.CommandBars("Test").Delete
For Each ctrl In Application.CommandBars("Tools").Controls
If ctrl.Tag = "Test" Or ctrl.Tag = "Test" Then
ctrl.Delete
End If
Next ctrl
End Sub
Dans le module principal je ne
Public Sub a()
MsgBox "a"
End Sub
Public Sub d()
MsgBox "d"
End Sub
Public Sub b()
MsgBox "b"
End Sub
Public Sub c()
MsgBox "c"
End Sub
Si je fais la procédure suivante:
Créer un nouveau fichier test2.xlsx
Ouvrir test.xlsm
Ouvrir test2.xslx
En cliquant un après l'autre sur les boutons:
résultats dans: "b"
"Cannot run the macro '[test.xslm]Sheet1A:A'. The macro may not be available in this workbook or all macros may be disabled"
"a"
"Cannot run the macro 'd'. The macro may not be available in this workbook or all macros may be disabled"
- commutateur à test.xlsm
Résultats dans:
"b"
"Cannot run the macro '[test.xslm]Sheet1A:A'. The macro may not be available in this wo rkbook or all macros may be disabled"
"a"
"d"
Quelqu'un pourrait-il me aider?