OVH Cloud OVH Cloud

CommandBar

4 réponses
Avatar
Pascale
Bonjour à tous,

je travaille sous Excel97

j'ai copié sur Excelabo la macro suivante :

Public Const nomBO = "Action"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBo 'en cas de plantate d'excel:-)

Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "COPIER_MATRICE"
.FaceId = 19
.OnAction = "COPIER_MATRICE"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "ajout_formule_feuil_copy"
.FaceId = 36
.OnAction = "Cajout_formule_feuil_copy"
End With
bo.Visible = True
End Sub

Sub DeleteBo()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub

et dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteBo
End Sub

Private Sub Workbook_Open()
CreateBO
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = True

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = False
End Sub

Mon problème est le suivant lorsque je ferme mon classeur cela bug à la
ligne :
Application.CommandBars(nomBO).Visible = False "Argument ou appel de
procédure incorrect !"
où ai-je fait l'erreur ?

Merci pour votre aide précieuse !

Pascale

4 réponses

Avatar
sabatier
bonsoir pascale
essaie d'écrire plutôt :

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.Commandbars( etc....)

après ce petit aparté, je retourne travailler, ne serait-ce que pour ne
plus à souffrir des quolibets du félon (non, non, pas Mégret....Pierre CFI)

jps

Pascale wrote:

Bonjour à tous,

je travaille sous Excel97

j'ai copié sur Excelabo la macro suivante :

Public Const nomBO = "Action"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBo 'en cas de plantate d'excel:-)

Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "COPIER_MATRICE"
.FaceId = 19
.OnAction = "COPIER_MATRICE"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "ajout_formule_feuil_copy"
.FaceId = 36
.OnAction = "Cajout_formule_feuil_copy"
End With
bo.Visible = True
End Sub

Sub DeleteBo()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub

et dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteBo
End Sub

Private Sub Workbook_Open()
CreateBO
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = True

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = False
End Sub

Mon problème est le suivant lorsque je ferme mon classeur cela bug à la
ligne :
Application.CommandBars(nomBO).Visible = False "Argument ou appel de
procédure incorrect !"
où ai-je fait l'erreur ?

Merci pour votre aide précieuse !

Pascale


Avatar
...Patrick
J'ai esayé ceci Pascale et ça semble fonctionner :
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next ' ICI ajout
Application.CommandBars(nomBO).Visible = False
End Sub

quand tu quittes, tu effaces "nomBO" par
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ce qui empeche le windowdeactivate de fonctionner ( HMHA)


--
...Patrick
Merci de répondre dans ce forum !




"Pascale" a écrit dans le message de
news:
Bonjour à tous,

je travaille sous Excel97

j'ai copié sur Excelabo la macro suivante :

Public Const nomBO = "Action"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBo 'en cas de plantate d'excel:-)

Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "COPIER_MATRICE"
.FaceId = 19
.OnAction = "COPIER_MATRICE"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "ajout_formule_feuil_copy"
.FaceId = 36
.OnAction = "Cajout_formule_feuil_copy"
End With
bo.Visible = True
End Sub

Sub DeleteBo()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub

et dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteBo
End Sub

Private Sub Workbook_Open()
CreateBO
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = True

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = False
End Sub

Mon problème est le suivant lorsque je ferme mon classeur cela bug à la
ligne :
Application.CommandBars(nomBO).Visible = False "Argument ou appel de
procédure incorrect !"
où ai-je fait l'erreur ?

Merci pour votre aide précieuse !

Pascale




Avatar
Pascale
Merci beaucoup à tous les deux
Bon dimanche, Pascale
"Pascale" a écrit dans le message de news:

Bonjour à tous,

je travaille sous Excel97

j'ai copié sur Excelabo la macro suivante :

Public Const nomBO = "Action"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBo 'en cas de plantate d'excel:-)

Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "COPIER_MATRICE"
.FaceId = 19
.OnAction = "COPIER_MATRICE"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "ajout_formule_feuil_copy"
.FaceId = 36
.OnAction = "Cajout_formule_feuil_copy"
End With
bo.Visible = True
End Sub

Sub DeleteBo()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub

et dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteBo
End Sub

Private Sub Workbook_Open()
CreateBO
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = True

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = False
End Sub

Mon problème est le suivant lorsque je ferme mon classeur cela bug à la
ligne :
Application.CommandBars(nomBO).Visible = False "Argument ou appel de
procédure incorrect !"
où ai-je fait l'erreur ?

Merci pour votre aide précieuse !

Pascale




Avatar
sabatier
maille plijeure, pascale
jps (québécois anglophone)

Pascale wrote:

Merci beaucoup à tous les deux
Bon dimanche, Pascale
"Pascale" a écrit dans le message de news:

Bonjour à tous,

je travaille sous Excel97

j'ai copié sur Excelabo la macro suivante :

Public Const nomBO = "Action"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
DeleteBo 'en cas de plantate d'excel:-)

Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "COPIER_MATRICE"
.FaceId = 19
.OnAction = "COPIER_MATRICE"
End With
With bo.Controls.Add(msoControlButton)
.Caption = "ajout_formule_feuil_copy"
.FaceId = 36
.OnAction = "Cajout_formule_feuil_copy"
End With
bo.Visible = True
End Sub

Sub DeleteBo()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub

et dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteBo
End Sub

Private Sub Workbook_Open()
CreateBO
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = True

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CommandBars(nomBO).Visible = False
End Sub

Mon problème est le suivant lorsque je ferme mon classeur cela bug à la
ligne :
Application.CommandBars(nomBO).Visible = False "Argument ou appel de
procédure incorrect !"
où ai-je fait l'erreur ?

Merci pour votre aide précieuse !

Pascale