OVH Cloud OVH Cloud

[SOLUTION] Creer une barre d'outils tranportable grace a VBA et des tableaux

3 réponses
Avatar
tictok
Bonsoir a tous !
Voila un macro qui pourrait interesser certains (dont Ghislain) : creer une
barre d'outils pour lancer des macros par une macro.

(Ghislain, les tableaux marchent parfaitement, je me suis juste trompe dans
mon compteur si tu as remarque (Compt et Compteur ...) ! )
Il y a deux procedures : celle pour creer la barre, celle pour la supprimer.
Placer les dans un fichier (dans un Module pour ma part).
Voici une barre avec quatre boutons.
Il y a evidemment des ameliorations :
- For Compteur = 1 To Longueur(Tableau) (voila l'idee ;-) )
- Rassembler dans un seul grand tableau.
- Remplacer les Variant par les bons types.

---------------------------------------------------------
Sub Create()
Dim Compteur As Integer

Dim Boutons(4) As Variant
Boutons(1) = Btn1
Boutons(2) = Btn2
Boutons(3) = Btn3
Boutons(4) = Btn4

Dim ID(4) As Variant
ID(1) = 222
ID(2) = 355
ID(3) = 15
ID(4) = 598

Dim Macros(4) As Variant
Macros(1) = "Macro1"
Macros(2) = "Macro2"
Macros(3) = "Macro3"
Macros(4) = "Macro4"

Dim Legendes(4) As Variant
Legendes(1) = "Legende 1"
Legendes(2) = "Legende 2"
Legendes(3) = "Legende 3"
Legendes(4) = "Legende 4"

On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
On Error Resume Next
Set MaBar = Application.CommandBars.Add("TaSuperBarre")
With MaBar
For Compteur = 1 To 4
Set Boutons(Compteur) = .Controls.Add(msoControlButton)
With Boutons(Compteur)
.FaceId = ID(Compteur)
.OnAction = Macros(Compteur)
.Caption = Legendes(Compteur)
End With
Next Compteur
.Visible = True
End With
End Sub
---------------------------------------------------------

---------------------------------------------------------
Sub Delete()
On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
'MsgBox ("Barre d'outils supprimee !")
End Sub
---------------------------------------------------------

Voila, j'espere que ca aidera quelqu'un qui voulait transporter sa barre
d'outils !

3 réponses

Avatar
Pascal Engelmajer
Salut tictok,
http://www.ilyapa.net/excel/commandBarAuto.zip
deux procédures (dont une de Frédéric Sigonneau)
Réalisation automatique d'une barre de commande actions, à partir des
procédures d'un module :
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"tictok" a écrit dans le message de news:

Bonsoir a tous !
Voila un macro qui pourrait interesser certains (dont Ghislain) : creer
une

barre d'outils pour lancer des macros par une macro.

(Ghislain, les tableaux marchent parfaitement, je me suis juste trompe
dans

mon compteur si tu as remarque (Compt et Compteur ...) ! )
Il y a deux procedures : celle pour creer la barre, celle pour la
supprimer.

Placer les dans un fichier (dans un Module pour ma part).
Voici une barre avec quatre boutons.
Il y a evidemment des ameliorations :
- For Compteur = 1 To Longueur(Tableau) (voila l'idee ;-) )
- Rassembler dans un seul grand tableau.
- Remplacer les Variant par les bons types.

---------------------------------------------------------
Sub Create()
Dim Compteur As Integer

Dim Boutons(4) As Variant
Boutons(1) = Btn1
Boutons(2) = Btn2
Boutons(3) = Btn3
Boutons(4) = Btn4

Dim ID(4) As Variant
ID(1) = 222
ID(2) = 355
ID(3) = 15
ID(4) = 598

Dim Macros(4) As Variant
Macros(1) = "Macro1"
Macros(2) = "Macro2"
Macros(3) = "Macro3"
Macros(4) = "Macro4"

Dim Legendes(4) As Variant
Legendes(1) = "Legende 1"
Legendes(2) = "Legende 2"
Legendes(3) = "Legende 3"
Legendes(4) = "Legende 4"

On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
On Error Resume Next
Set MaBar = Application.CommandBars.Add("TaSuperBarre")
With MaBar
For Compteur = 1 To 4
Set Boutons(Compteur) = .Controls.Add(msoControlButton)
With Boutons(Compteur)
.FaceId = ID(Compteur)
.OnAction = Macros(Compteur)
.Caption = Legendes(Compteur)
End With
Next Compteur
.Visible = True
End With
End Sub
---------------------------------------------------------

---------------------------------------------------------
Sub Delete()
On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
'MsgBox ("Barre d'outils supprimee !")
End Sub
---------------------------------------------------------

Voila, j'espere que ca aidera quelqu'un qui voulait transporter sa barre
d'outils !




Avatar
tictok
Merci Pascal pour ce lien.
Tu as pu resoudre mon probleme de comparaison ?


"Pascal Engelmajer" escreveu na mensagem
news:#
Salut tictok,
http://www.ilyapa.net/excel/commandBarAuto.zip
deux procédures (dont une de Frédéric Sigonneau)
Réalisation automatique d'une barre de commande actions, à partir des
procédures d'un module :
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"tictok" a écrit dans le message de news:

Bonsoir a tous !
Voila un macro qui pourrait interesser certains (dont Ghislain) : creer
une

barre d'outils pour lancer des macros par une macro.

(Ghislain, les tableaux marchent parfaitement, je me suis juste trompe
dans

mon compteur si tu as remarque (Compt et Compteur ...) ! )
Il y a deux procedures : celle pour creer la barre, celle pour la
supprimer.

Placer les dans un fichier (dans un Module pour ma part).
Voici une barre avec quatre boutons.
Il y a evidemment des ameliorations :
- For Compteur = 1 To Longueur(Tableau) (voila l'idee ;-) )
- Rassembler dans un seul grand tableau.
- Remplacer les Variant par les bons types.

---------------------------------------------------------
Sub Create()
Dim Compteur As Integer

Dim Boutons(4) As Variant
Boutons(1) = Btn1
Boutons(2) = Btn2
Boutons(3) = Btn3
Boutons(4) = Btn4

Dim ID(4) As Variant
ID(1) = 222
ID(2) = 355
ID(3) = 15
ID(4) = 598

Dim Macros(4) As Variant
Macros(1) = "Macro1"
Macros(2) = "Macro2"
Macros(3) = "Macro3"
Macros(4) = "Macro4"

Dim Legendes(4) As Variant
Legendes(1) = "Legende 1"
Legendes(2) = "Legende 2"
Legendes(3) = "Legende 3"
Legendes(4) = "Legende 4"

On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
On Error Resume Next
Set MaBar = Application.CommandBars.Add("TaSuperBarre")
With MaBar
For Compteur = 1 To 4
Set Boutons(Compteur) = .Controls.Add(msoControlButton)
With Boutons(Compteur)
.FaceId = ID(Compteur)
.OnAction = Macros(Compteur)
.Caption = Legendes(Compteur)
End With
Next Compteur
.Visible = True
End With
End Sub
---------------------------------------------------------

---------------------------------------------------------
Sub Delete()
On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
'MsgBox ("Barre d'outils supprimee !")
End Sub
---------------------------------------------------------

Voila, j'espere que ca aidera quelqu'un qui voulait transporter sa barre
d'outils !








Avatar
Misange
Bonjour,
Tu trouveras d'autres exemples pour transmettre des barres d'outils ou
pour les créer par macro à l'ouverture du classeur et les détruire à la
fermeture ici :
http://www.excelabo.net/xl/barres.php#BOpersoenvoi
http://www.excelabo.net/xl/barres.php#exemplebo
avec même des exemples à télécharger !

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Merci Pascal pour ce lien.
Tu as pu resoudre mon probleme de comparaison ?


"Pascal Engelmajer" escreveu na mensagem
news:#

Salut tictok,
http://www.ilyapa.net/excel/commandBarAuto.zip
deux procédures (dont une de Frédéric Sigonneau)
Réalisation automatique d'une barre de commande actions, à partir des
procédures d'un module :
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"tictok" a écrit dans le message de news:


Bonsoir a tous !
Voila un macro qui pourrait interesser certains (dont Ghislain) : creer


une

barre d'outils pour lancer des macros par une macro.

(Ghislain, les tableaux marchent parfaitement, je me suis juste trompe


dans

mon compteur si tu as remarque (Compt et Compteur ...) ! )
Il y a deux procedures : celle pour creer la barre, celle pour la


supprimer.

Placer les dans un fichier (dans un Module pour ma part).
Voici une barre avec quatre boutons.
Il y a evidemment des ameliorations :
- For Compteur = 1 To Longueur(Tableau) (voila l'idee ;-) )
- Rassembler dans un seul grand tableau.
- Remplacer les Variant par les bons types.

---------------------------------------------------------
Sub Create()
Dim Compteur As Integer

Dim Boutons(4) As Variant
Boutons(1) = Btn1
Boutons(2) = Btn2
Boutons(3) = Btn3
Boutons(4) = Btn4

Dim ID(4) As Variant
ID(1) = 222
ID(2) = 355
ID(3) = 15
ID(4) = 598

Dim Macros(4) As Variant
Macros(1) = "Macro1"
Macros(2) = "Macro2"
Macros(3) = "Macro3"
Macros(4) = "Macro4"

Dim Legendes(4) As Variant
Legendes(1) = "Legende 1"
Legendes(2) = "Legende 2"
Legendes(3) = "Legende 3"
Legendes(4) = "Legende 4"

On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
On Error Resume Next
Set MaBar = Application.CommandBars.Add("TaSuperBarre")
With MaBar
For Compteur = 1 To 4
Set Boutons(Compteur) = .Controls.Add(msoControlButton)
With Boutons(Compteur)
.FaceId = ID(Compteur)
.OnAction = Macros(Compteur)
.Caption = Legendes(Compteur)
End With
Next Compteur
.Visible = True
End With
End Sub
---------------------------------------------------------

---------------------------------------------------------
Sub Delete()
On Error Resume Next
Application.CommandBars("TaSuperBarre").Delete
On Error GoTo 0
'MsgBox ("Barre d'outils supprimee !")
End Sub
---------------------------------------------------------

Voila, j'espere que ca aidera quelqu'un qui voulait transporter sa barre
d'outils !