Probléme macro disparait lors de l'enregistrement

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
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

Bonjour Chasseur JM:)
bon alors c'est très exactement ce que j'avais fait de multiple fois, et que je viens de refaire en suivant exactement ton descriptif et ta méthodologie avec ta macro, et à la finale quand j'ouvre le fichier test, le bouton est bien là mais la macro pas!! la feuille est vide de chez vide !!!! ?????
Tu vas nous prendre pour des beubeux mais c'est pourtant vrai, et j'ai refait le test 2 fois pour être bien sur
à savoir que je suis sous 2010 32 bits et windows 8.1 alors que toi tu as 2013.
bon week-end
Papou:)
 
Dernière édition:

chasseur44

XLDnaute Occasionnel
Re : Probléme macro disparait lors de l'enregistrement

Bonjour Paritec et JM
Toujours le même souci et le même constat ! c'est incompréhensible !
Si j'ote l'instruction qui ferme le fichier ; mon fichier créé est clean et le bouton est bien actif ! ; il semble qu'au môment de l'instruction Save, la macro associée au bouton disparait :confused:
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

Bien le bonjour à vous tous,

je viens d'essayer le code avec la procédure indiquée par Staple1600
et chez moi tout fonctionne correctement idem Staple
c'est à dire comme souhaité le code et le bouton sont bien là au rechargement du 2'classeur !

windows 7 64 bits avec excel 2007 32 bits
 

chasseur44

XLDnaute Occasionnel
Re : Probléme macro disparait lors de l'enregistrement

Je viens de reprendre la méthodo de stapple 1600 et je l'ai inséré dans ma macro plus global !
Bouton toujours non actif !!!! C'est au môment de la sauvegarde que les instructions dans le projet disparaisse ! si dans ma macro plus global je met en commentaire l'instruction qui sauvegarde le fichier, la c'est OK ! mon fichier n'est donc pas fermé et le bouton est OK avec la macro au bon endroit ! si je le sauvegarde manuellement tout est ok ! j'en perd mon latin !!!!
Windwos Vista Pro - Excel 2007 Sce Pack 2 système d'exploit. 32 bits
 

Roland_M

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

re

essayer comme ceci:

ici, mettre true en rem pour avoir la confirmation de sauvegarde (faut bien tout essayer)
wbKDest.Close ' true


EDIT: essais aussi de mettre un Doevents avant close !
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

Re Roland le forum
Moi j'ai déjà essayé cela au début de mes tests mais cela ne changes rien la macro n'est plus présente a la réouverture après fermeture du fichier concerné !!!
J'ai aussi tenté lorsque le fichier est fini de le sauvegarder sous pour voir , c'est pareil!!
J'ai aussi tenté de lancer la macro une fois sa macro globale terminée, d'enregistrer le fichier, de l'ouvrir à nouveau, de lancer la macro de génération du bouton et du code, et là d'enregistrer et rien n'y fait la macro avant l'enregistrement est là mais après enregistrement et fermeture, il ne reste que le bouton !!! et le doevents aussi je l'ai testé !!!
Et aussi si maintenant tu copies la macro de génération dans le fichier ou la macro globale a été effectuée, et que tu lances la macro de ce fichier, là c'est ok le bouton est là et la macro aussi dans la feuille !!!!
Bref affaire à suivre pour comprendre
a+
Papou:)
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

re

c'est vraiment incroyable !?
si ont avaient affaire à des débutants ont diraient d'aller voir dans les options excel pour la sauvegarde par defaut(avec macro)
car ça ressemble beaucoup à ça !?

mais là ce n'est pas le cas !

et pourtant je pense tout de même qu'il s'agit de configuration et d'options
puisqu'il s'agit d'ordi différent !
 

Paritec

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

Re Roland le forum
oui je pense que l'on passe à coté d'un petit truc, mais lequel, une autre chose que j'ai constaté, c'est que si j'essaye de lancer la macro en pas à pas sur le fichier en question dès la création du bouton, il me met le message habituel impossible de continuer en mode arrêt etc etc !!!
Mais quand je lance en pas à pas la macro de l'autre fichier sur celui de destination là je n'ai pas le message, je vois le bouton se créer, et la macro s'écrire mais là la macro après enregistrement et réouverture le bouton et là et plus la macro!!!
Alors un paramétrage comme tu le dis mais lequel???? Là perso je n'ai pas trouvé encore , et si je trouve je vous le ferai savoir, et inversement je l'espère.
a+
Papou:)
 

Roland_M

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

re

tu dis:
si j'essaye de lancer la macro en pas à pas sur le fichier en question dès la création du bouton, il me met le message habituel impossible de continuer en mode arrêt etc etc !!!

au pas à pas, perso aussi j'ai ce message !
 

chasseur44

XLDnaute Occasionnel
Re : Probléme macro disparait lors de l'enregistrement

Pour moi le pas à pas est correct ! pas de message !
toujours pas de solution et une incompréhension totale , je viens de réaliser ma macro dans son ensemble sans sauvegarder et sans fermer mes fichiers créés ! (j'en ai une quinzaine et tous mes fichiers possèdent le bouton ainsi que la macro associée) me reste la sauvegarde à la main !!!!! c'est la seule solution que j'ai trouvé en attendant une solution meilleure !!!
 

Paritec

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

Re Roland, le forum
oui toi aussi tu as le message et là c'est bon tu as bien le bouton créé et la macro qui reste.
C'est bien ce que j'ai lorsque je lance la macro dans le même fichier.
Mais si j'ai la macro à lancer dans le fichier A et que je lance la macro pour créer sur le fichier B là, la macro en pas à pas ne me donne pas de message d'erreur, elle me craie le bouton sans message impossible de continuer en mode arrêt etc etc et lors de l'enregistrement et de la fermeture , et réouverture de ce fichier B je n'ai plus la macro !!!
a+
Papou:)
 

Roland_M

XLDnaute Barbatruc
Re : Probléme macro disparait lors de l'enregistrement

re

@MJ13 , pour essai, rappel, ce code de Chasseur44 simplifié par Staple1600
avec l'explication pour le déroulement de cet essai.

Code:
'1) tu crées un classeur2.xlsm vide que tu sauvegardes, ici pour l'essai, à la base C:\
'2) tu mets dans un classeur1 cette macro que tu exécutes par F5
'3) tu reload le classeur2 et tu constates s'il y a bien,
'    le bouton sur la feuil1 et la macro dans le code feuille

Sub crea_bouton_et_macro_TESTOK()
Dim Ws As Worksheet, wbKDest As Workbook, Obj As Object, cVBA$

Set wbKDest = Workbooks.Open(Filename:="C:\Classeur2.xlsm")
Set Ws = wbKDest.Sheets(1)

Set Obj = Ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=180, Top:=5, Width:=190, Height:=25)
Obj.Object.Caption = "Vision : Cumulé"

cVBA = "Private Sub CommandButton1_Click()" & vbCrLf
cVBA = cVBA & "Cells(1,1).Font.Bold=true" & vbCrLf
cVBA = cVBA & "Cells(1,1)=""TEST""" & vbCrLf
cVBA = cVBA & "End Sub" & vbCrLf

With wbKDest.VBProject.VBComponents(Ws.CodeName).CodeModule
 .insertlines .CountOfLines + 1, cVBA
End With

DoEvents
wbKDest.Close True ' close le classeur après création
End Sub

EDIT: j'ai rajouté un DoEvents avant close au cas où !?
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
385
Réponses
0
Affichages
308

Statistiques des forums

Discussions
314 644
Messages
2 111 528
Membres
111 189
dernier inscrit
Laurent.