Dans mon Workbook_open() j'ai la macro suivante :
*****************************************************
Private Sub Workbook_Open()
Call CreateBO
'Nom de la barre où est le bouton
With Application.CommandBars("bidon")
'Nom du bouton
With .Controls("pas content")
.OnAction = "Module1.pascontent"
End With
End With
End sub
Public Const nomBO = "bidon"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
deleteBO 'en cas de plantage Excel
Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy
' colle l'icone personnalisé
.PasteFace
.OnAction = "Module1!PasContent"
End With
Sub deleteBO()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub
********************************************************
Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme
temps que le premier et bien les bouton du premier classeur trouver ce
retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Ta question n'est pas très claire... je te donne un exemple comment ajouter un bouton à la barre d'outils standard et de lui affecter une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur car la macro ne sera pas disponible...Tu dois alors utiliser les événement "Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que tu rencontres.
'----------------------------------------- Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard") With X With .Controls.Add .Caption = "toto" .Style = 2 .OnAction = ThisWorkbook.Name & "!Module1.MaMacro" End With End With
End Sub
'----------------------------------------- Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "Bonjour" 'Tu places ton code ici.... Else MsgBox "Ce bouton est actif seulement pour" & _ "le claseur " & ThisWorkbook.Name End If
End Sub '-----------------------------------------
"Sim" a écrit dans le message de news: Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante : ***************************************************** Private Sub Workbook_Open() Call CreateBO 'Nom de la barre où est le bouton With Application.CommandBars("bidon") 'Nom du bouton With .Controls("pas content") .OnAction = "Module1.pascontent" End With End With End sub
Public Const nomBO = "bidon" Sub CreateBO() Dim bo As CommandBar On Error Resume Next deleteBO 'en cas de plantage Excel Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton) .Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy ' colle l'icone personnalisé .PasteFace .OnAction = "Module1!PasContent" End With
Sub deleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub ******************************************************** Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme temps que le premier et bien les bouton du premier classeur trouver ce retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
et ce pour le meme bouton du premier classeur !
quelqu'un aurait une solution alternative !
Merci de votre aide !
Ta question n'est pas très claire... je te donne un exemple comment
ajouter un bouton à la barre d'outils standard et de lui affecter
une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur
car la macro ne sera pas disponible...Tu dois alors utiliser les événement
"Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence
ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que tu rencontres.
'-----------------------------------------
Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard")
With X
With .Controls.Add
.Caption = "toto"
.Style = 2
.OnAction = ThisWorkbook.Name & "!Module1.MaMacro"
End With
End With
End Sub
'-----------------------------------------
Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then
MsgBox "Bonjour"
'Tu places ton code ici....
Else
MsgBox "Ce bouton est actif seulement pour" & _
"le claseur " & ThisWorkbook.Name
End If
End Sub
'-----------------------------------------
"Sim" <SimBrea@hotmail.com> a écrit dans le message de news: u6ryolxOHHA.400@TK2MSFTNGP04.phx.gbl...
Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante :
*****************************************************
Private Sub Workbook_Open()
Call CreateBO
'Nom de la barre où est le bouton
With Application.CommandBars("bidon")
'Nom du bouton
With .Controls("pas content")
.OnAction = "Module1.pascontent"
End With
End With
End sub
Public Const nomBO = "bidon"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
deleteBO 'en cas de plantage Excel
Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy
' colle l'icone personnalisé
.PasteFace
.OnAction = "Module1!PasContent"
End With
Sub deleteBO()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub
********************************************************
Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme
temps que le premier et bien les bouton du premier classeur trouver ce
retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
Ta question n'est pas très claire... je te donne un exemple comment ajouter un bouton à la barre d'outils standard et de lui affecter une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur car la macro ne sera pas disponible...Tu dois alors utiliser les événement "Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que tu rencontres.
'----------------------------------------- Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard") With X With .Controls.Add .Caption = "toto" .Style = 2 .OnAction = ThisWorkbook.Name & "!Module1.MaMacro" End With End With
End Sub
'----------------------------------------- Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "Bonjour" 'Tu places ton code ici.... Else MsgBox "Ce bouton est actif seulement pour" & _ "le claseur " & ThisWorkbook.Name End If
End Sub '-----------------------------------------
"Sim" a écrit dans le message de news: Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante : ***************************************************** Private Sub Workbook_Open() Call CreateBO 'Nom de la barre où est le bouton With Application.CommandBars("bidon") 'Nom du bouton With .Controls("pas content") .OnAction = "Module1.pascontent" End With End With End sub
Public Const nomBO = "bidon" Sub CreateBO() Dim bo As CommandBar On Error Resume Next deleteBO 'en cas de plantage Excel Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton) .Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy ' colle l'icone personnalisé .PasteFace .OnAction = "Module1!PasContent" End With
Sub deleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub ******************************************************** Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme temps que le premier et bien les bouton du premier classeur trouver ce retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
et ce pour le meme bouton du premier classeur !
quelqu'un aurait une solution alternative !
Merci de votre aide !
Sim
Bonjour MichDenis,
Désoler si ma question n'était pas clair :( Cepandant tu ma fais allumer sur quelque chose. Au lieu de placer mon code dans mon Workbook_Open() je le place dans Workbook_Activate() comme tu la dis et sa fonctionne super bien :)
Merci a toi pour ton aide !
"MichDenis" a écrit dans le message de news: eK$V$
Ta question n'est pas très claire... je te donne un exemple comment ajouter un bouton à la barre d'outils standard et de lui affecter une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur car la macro ne sera pas disponible...Tu dois alors utiliser les événement "Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que tu rencontres.
'----------------------------------------- Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard") With X With .Controls.Add .Caption = "toto" .Style = 2 .OnAction = ThisWorkbook.Name & "!Module1.MaMacro" End With End With
End Sub
'----------------------------------------- Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "Bonjour" 'Tu places ton code ici.... Else MsgBox "Ce bouton est actif seulement pour" & _ "le claseur " & ThisWorkbook.Name End If
End Sub '-----------------------------------------
"Sim" a écrit dans le message de news:
Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante : ***************************************************** Private Sub Workbook_Open() Call CreateBO 'Nom de la barre où est le bouton With Application.CommandBars("bidon") 'Nom du bouton With .Controls("pas content") .OnAction = "Module1.pascontent" End With End With End sub
Public Const nomBO = "bidon" Sub CreateBO() Dim bo As CommandBar On Error Resume Next deleteBO 'en cas de plantage Excel Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton) .Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy ' colle l'icone personnalisé .PasteFace .OnAction = "Module1!PasContent" End With
Sub deleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub ******************************************************** Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme temps que le premier et bien les bouton du premier classeur trouver ce retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
et ce pour le meme bouton du premier classeur !
quelqu'un aurait une solution alternative !
Merci de votre aide !
Bonjour MichDenis,
Désoler si ma question n'était pas clair :(
Cepandant tu ma fais allumer sur quelque chose. Au lieu de placer mon code
dans mon
Workbook_Open() je le place dans Workbook_Activate() comme tu la dis
et sa fonctionne super bien :)
Merci a toi pour ton aide !
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
eK$V$T0OHHA.4424@TK2MSFTNGP06.phx.gbl...
Ta question n'est pas très claire... je te donne un exemple comment
ajouter un bouton à la barre d'outils standard et de lui affecter
une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur
car la macro ne sera pas disponible...Tu dois alors utiliser les événement
"Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence
ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que
tu rencontres.
'-----------------------------------------
Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard")
With X
With .Controls.Add
.Caption = "toto"
.Style = 2
.OnAction = ThisWorkbook.Name & "!Module1.MaMacro"
End With
End With
End Sub
'-----------------------------------------
Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then
MsgBox "Bonjour"
'Tu places ton code ici....
Else
MsgBox "Ce bouton est actif seulement pour" & _
"le claseur " & ThisWorkbook.Name
End If
End Sub
'-----------------------------------------
"Sim" <SimBrea@hotmail.com> a écrit dans le message de news:
u6ryolxOHHA.400@TK2MSFTNGP04.phx.gbl...
Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante :
*****************************************************
Private Sub Workbook_Open()
Call CreateBO
'Nom de la barre où est le bouton
With Application.CommandBars("bidon")
'Nom du bouton
With .Controls("pas content")
.OnAction = "Module1.pascontent"
End With
End With
End sub
Public Const nomBO = "bidon"
Sub CreateBO()
Dim bo As CommandBar
On Error Resume Next
deleteBO 'en cas de plantage Excel
Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton)
.Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy
' colle l'icone personnalisé
.PasteFace
.OnAction = "Module1!PasContent"
End With
Sub deleteBO()
On Error Resume Next
Application.CommandBars(nomBO).Delete
End Sub
********************************************************
Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme
temps que le premier et bien les bouton du premier classeur trouver ce
retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent
Désoler si ma question n'était pas clair :( Cepandant tu ma fais allumer sur quelque chose. Au lieu de placer mon code dans mon Workbook_Open() je le place dans Workbook_Activate() comme tu la dis et sa fonctionne super bien :)
Merci a toi pour ton aide !
"MichDenis" a écrit dans le message de news: eK$V$
Ta question n'est pas très claire... je te donne un exemple comment ajouter un bouton à la barre d'outils standard et de lui affecter une macro particulière ....
Si le classeur où est la macro est fermé, tu auras un message d'erreur car la macro ne sera pas disponible...Tu dois alors utiliser les événement "Activate" et "Desactivate" dans le ThisWorkbook pour gérer la présence ou non de ton bouton selon que le fichier est ouvert ou fermé.
Si tu as d'autres problèmes, il faudra que tu précises la difficulté que tu rencontres.
'----------------------------------------- Sub test()
Dim X As CommandBar
Set X = Application.CommandBars("Standard") With X With .Controls.Add .Caption = "toto" .Style = 2 .OnAction = ThisWorkbook.Name & "!Module1.MaMacro" End With End With
End Sub
'----------------------------------------- Sub MaMacro()
If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "Bonjour" 'Tu places ton code ici.... Else MsgBox "Ce bouton est actif seulement pour" & _ "le claseur " & ThisWorkbook.Name End If
End Sub '-----------------------------------------
"Sim" a écrit dans le message de news:
Bonjour a tous,
Dans mon Workbook_open() j'ai la macro suivante : ***************************************************** Private Sub Workbook_Open() Call CreateBO 'Nom de la barre où est le bouton With Application.CommandBars("bidon") 'Nom du bouton With .Controls("pas content") .OnAction = "Module1.pascontent" End With End With End sub
Public Const nomBO = "bidon" Sub CreateBO() Dim bo As CommandBar On Error Resume Next deleteBO 'en cas de plantage Excel Set bo = Application.CommandBars.Add(nomBO)
With bo.Controls.Add(msoControlButton) .Caption = "Pas Content"
ThisWorkbook.Worksheets("IconeMacro").Shapes("Image 2").Copy ' colle l'icone personnalisé .PasteFace .OnAction = "Module1!PasContent" End With
Sub deleteBO() On Error Resume Next Application.CommandBars(nomBO).Delete End Sub ******************************************************** Mon probleme est le suivant ... si j'ouvre un autre classeur excel en meme temps que le premier et bien les bouton du premier classeur trouver ce retrouve avec le chemins du classeur que je viens d'ouvrir exemple :
avant ouvertude du deuxieme classeur : '24248-C07B.xls'!Module1.pascontent
apres ouverture du deuxieme classeur : '26125.xls'!Module1.pascontent