supprimer un control ?

  • Initiateur de la discussion olive
  • Date de début
O

olive

Guest
Salut le forum!!!

J'espère que qq'un pourra m'aider :

J'ai mis dans "thisworkbook" le code suivant pour ajouter un control à l'ouverture :

Private Sub Workbook_Open()

Dim appel As CommandBarControl

Set appel = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlButton, , , , False)
With appel
.Caption = "appel programme calcul topo"
.FaceId = 59
.OnAction = "barre_commandes"
.Enabled = True
End With

End Sub

Et je voudrais savoir comment on fait pour que ce bouton soit supprimé à la fermeture. En effet j'ai essayé avec workbook_beforeclose et app_workbookbeforeclose mais aucun résultats !!!

Merci d'avance à tous!!!

Olive
 
A

Arnaud

Guest
salut,

pour savoir pkoi ton controle est mal supprimé, c'est le code que tu a mis dans le workbook_beforeclose qu'il faut qie tu nous donne.
sinon je pense que cela doit être un truc du style

For i = 1 To Application.CommandBars("Worksheet Menu Bar").Controls.Count
If Application.CommandBars("Worksheet Menu Bar").Controls(i).Caption = "appel programme calcul topo" Then Application.CommandBars("Worksheet Menu Bar").Controls(i).Delete
Next i
 
O

olive

Guest
Ok j'ai intégré ta solution (merci pour ton aide arnaud) ca donne ça :

Private Sub app_WorkbookBeforeClose()

For i = 1 To Application.CommandBars("Worksheet Menu Bar").Controls.Count
If Application.CommandBars("Worksheet Menu Bar").Controls(i).Caption = "appel programme calcul topo" Then Application.CommandBars("Worksheet Menu Bar").Controls(i).Delete
Next i

End Sub

Mais à chaque fois j'ai le message d'erreur :

"indice en dehors de la plage" quand j'éxécute moi même la macro.

En plus elle ne s'exécute pas (et donc rien n'est supprimé) quand je ferme excel, alors que j'aimerai que ca se fasse automatiquement !

As tu une solution ?
 
A

Arnaud

Guest
essaye ça alors:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To Application.CommandBars("Worksheet Menu Bar").Controls.Count
If Application.CommandBars("Worksheet Menu Bar").Controls(i).Caption = "appel programme calcul topo" Then
Application.CommandBars("Worksheet Menu Bar").Controls(i).Delete
Exit Sub
End If
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 289
Membres
104 088
dernier inscrit
said4u