chasseur44
XLDnaute Occasionnel
Bonjour Forum !
J'ai une macro qui me permet de créer un bouton et d'y associer une macro.
Macro que j'ai récupéré sur le forum et adapté à mon besoin (j'ai srcuté tous les topic mais en vain)
Sub crea_bouton_et_macro()
Dim Ws As Worksheet
Dim Obj As Object
Dim x As Integer
Set Ws = ActiveSheet
Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
With Obj
.Left = 180
.Top = 5
.Width = 190
.Height = 25
.Object.Caption = "Vision : Cumulé"
End With
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
x = .CountOfLines
.insertlines x + 1, "private Sub CommandButton1_Click()"
.insertlines x + 2, "cells(5,1).Select"
.insertlines x + 3, "If ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel"" Then"
.insertlines x + 4, "ActiveWorkbook.ShowPivotTableFieldList = True"
.insertlines x + 5, " With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")"
.insertlines x + 6, " .Calculation = xlNormal"
.insertlines x + 7, " End With"
.insertlines x + 8, "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True"
.insertlines x + 9, "ActiveSheet.PivotTables(""TCD3"").RowGrand = True"
.insertlines x + 10, "ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé"""
.insertlines x + 11, "ElseIf ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé"" Then"
.insertlines x + 12, "ActiveWorkbook.ShowPivotTableFieldList = True"
.insertlines x + 13, "With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")"
.insertlines x + 14, " .Calculation = xlRunningTotal"
.insertlines x + 15, " .BaseField = ""Mois année"""
.insertlines x + 16, "End With"
.insertlines x + 17, "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True"
.insertlines x + 18, "ActiveSheet.PivotTables(""TCD3"").RowGrand = False"
.insertlines x + 19, "ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel"""
.insertlines x + 20, "End if"
.insertlines x + 21, "End Sub"
End With
Range("A1").Select
End Sub
Cette macro fonctionne correctement (création du bouton et affectation de la macro dans la bonne feuille) mais quand j'ajoute ce module dans ma macro générale qui se termine par une sauvegarde (en xlsm) et une fermeture du fichier créée. je vois bien quand j'ouvre le fichier le bouton mais aucune macro affectée (en pas à pas je vois la macro qui s'affecte à la bonne feuille ds ma visu Projet de VBA) ?
Je tourne en rond ! Merci pour votre aide
J'ai une macro qui me permet de créer un bouton et d'y associer une macro.
Macro que j'ai récupéré sur le forum et adapté à mon besoin (j'ai srcuté tous les topic mais en vain)
Sub crea_bouton_et_macro()
Dim Ws As Worksheet
Dim Obj As Object
Dim x As Integer
Set Ws = ActiveSheet
Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
With Obj
.Left = 180
.Top = 5
.Width = 190
.Height = 25
.Object.Caption = "Vision : Cumulé"
End With
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
x = .CountOfLines
.insertlines x + 1, "private Sub CommandButton1_Click()"
.insertlines x + 2, "cells(5,1).Select"
.insertlines x + 3, "If ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel"" Then"
.insertlines x + 4, "ActiveWorkbook.ShowPivotTableFieldList = True"
.insertlines x + 5, " With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")"
.insertlines x + 6, " .Calculation = xlNormal"
.insertlines x + 7, " End With"
.insertlines x + 8, "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True"
.insertlines x + 9, "ActiveSheet.PivotTables(""TCD3"").RowGrand = True"
.insertlines x + 10, "ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé"""
.insertlines x + 11, "ElseIf ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé"" Then"
.insertlines x + 12, "ActiveWorkbook.ShowPivotTableFieldList = True"
.insertlines x + 13, "With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")"
.insertlines x + 14, " .Calculation = xlRunningTotal"
.insertlines x + 15, " .BaseField = ""Mois année"""
.insertlines x + 16, "End With"
.insertlines x + 17, "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True"
.insertlines x + 18, "ActiveSheet.PivotTables(""TCD3"").RowGrand = False"
.insertlines x + 19, "ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel"""
.insertlines x + 20, "End if"
.insertlines x + 21, "End Sub"
End With
Range("A1").Select
End Sub
Cette macro fonctionne correctement (création du bouton et affectation de la macro dans la bonne feuille) mais quand j'ajoute ce module dans ma macro générale qui se termine par une sauvegarde (en xlsm) et une fermeture du fichier créée. je vois bien quand j'ouvre le fichier le bouton mais aucune macro affectée (en pas à pas je vois la macro qui s'affecte à la bonne feuille ds ma visu Projet de VBA) ?
Je tourne en rond ! Merci pour votre aide
Dernière édition: