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:

Roland_M

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

re

effectivement je confirme !
je l'ai fait suite à l'intervention de MJ13 au post#29
ceci, pour lui faire un essai, car il était étonné de ne pas voir de fichier avec suivi des modif
alors pour faire simple, rapide et éviter de remonter tout le fil j'ai replacé ce code !

maintenant, tout ceci, ne solutionne pas le problème en question !?
 

Paritec

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

Bonsoir tous
La macro initiale n'est pas de Staple qui dit l'avoir fait mais de chasseur 44 et c'est bien avant le post 16!!! Staple l'a modifié à sa sauce, mais initialement dans le post c'est la macro de Chasseur bref !!!! (il suffit de regarder le post 1 et vous en aurez la preuve)
De toute façon le problème n'est pas la paternité de la macro mais le résultat, et chez Chasseur cela ne marche pas et chez moi non plus.
Alors que c'est la même macro utilisé chez tout le monde, enfin chez tous ceux qui l'on testé, et c'est là que je ne comprend pas, elle marche chez Roland staple mj13 et pas chez Chasseur et chez moi???
Quel paramètre peut être en cause ?????
a+
Papou:)
 

MJ13

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

Re

Bon, après, qui a fait le code, ce n'est pas le plus important. Pour moi, c'est qu'on me donne une démarche simple pour pouvoir tester :).

Et dans ce cas, j'ai pu remarquer, qu'avec un fichier, je n'ai jamais vu plus simple, et cela me permet de ne pas perdre mon temps à tout refaire :eek:.


Pour ton problème Papou :), il serait bien que nous dise quelle est ta version d'Excel et de Windows. Et as tu bien coché Accès approuvé au code VBA dans les options?
 

chasseur44

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

Bonjour (ou bonsoir ! quand je vois Paritec qui dit bonsoir à 06h15 :) )
J'ai donc tout repris vos différentes remarques depuis le début de ce post que j'ai ouvert !
Ma macro (votre macro) la voila :

Sub crea_bouton_et_macro_ht()
Dim Ws As Worksheet, wbKDest As Workbook, Obj As Object, cVBA$
Set wbKDest = ActiveWorkbook
Set Ws = wbKDest.Sheets("Suivi des heures travaillées")
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(5,1).Select" & vbCrLf
cVBA = cVBA & "If ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel"" Then" & vbCrLf
cVBA = cVBA & " With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")" & vbCrLf
cVBA = cVBA & " .Calculation = xlNormal" & vbCrLf
cVBA = cVBA & " End With" & vbCrLf
cVBA = cVBA & "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True" & vbCrLf
cVBA = cVBA & "ActiveSheet.PivotTables(""TCD3"").RowGrand = True" & vbCrLf
cVBA = cVBA & "ActiveWorkbook.ShowPivotTableFieldList = False" & vbCrLf
cVBA = cVBA & "ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé""" & vbCrLf
cVBA = cVBA & "ElseIf ActiveSheet.CommandButton1.Caption = ""Vision : Cumulé"" Then" & vbCrLf
cVBA = cVBA & " With ActiveSheet.PivotTables(""TCD3"").PivotFields(""Somme de Nombre d'heures"")" & vbCrLf
cVBA = cVBA & " .Calculation = xlRunningTotal" & vbCrLf
cVBA = cVBA & " .BaseField = ""Mois année""" & vbCrLf
cVBA = cVBA & " End With" & vbCrLf
cVBA = cVBA & "ActiveSheet.PivotTables(""TCD3"").ColumnGrand = True" & vbCrLf
cVBA = cVBA & "ActiveSheet.PivotTables(""TCD3"").RowGrand = False" & vbCrLf
cVBA = cVBA & "ActiveWorkbook.ShowPivotTableFieldList = False" & vbCrLf
cVBA = cVBA & "ActiveSheet.CommandButton1.Caption = ""Vision : Mensuel""" & vbCrLf
cVBA = cVBA & "End if" & vbCrLf
cVBA = cVBA & "End Sub" & vbCrLf
With wbKDest.VBProject.VBComponents(Ws.CodeName).CodeModule
.insertlines .CountOfLines + 1, cVBA
End With
wbKDest.Close True
End Sub


Je l'ai donc rajouté à mon script plus général et ce matin au miracle cela marche chez moi !!!
Paritec tu devrais essayer !
En fait je me demande si la différence ne vient pas de la proposition de Roland pour l'instruction wbKDest.Close True

Si Pour Paritec ca marche on n'aura plus qu'à clore ce post
En tout cas Merci à tous !
 

MJ13

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

Re

Merci Chasseur :) pour ce retour. Le plus important c'est que maintenant, cela fonctionne :).

Voici par exemple un exemple de fichier qu'on aurait pu mettre pour tester (OK sur XL2007 et Win 8). Il faut avoir un dossier C:\Temp de crée.
 

Pièces jointes

  • Ajout_Code_VBA.xlsm
    16.9 KB · Affichages: 77

chasseur44

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

En fait il ne faut jamais vendre la peau de l'ours avant ....
En fait dans ma macro globale, je découpe un fichier maitre par structure ... puis dans les fichiers découpés je crée des TCD ... puis j'affecte ce fameux bouton et sa macro dans un onglet du TCD (passage de mode cumul à mode mensuel) et effectivement cela marche pour le premier fichier découpé mas malheureusement pas pour les autres !!!!
 
Dernière édition:

chasseur44

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

En creusant toujours plus ...
Je m'appercois que les feuilles ne sont pas numérotées de la même facon, incidence ou pas ? voila une copie d'ecran ! pour le premier qui marche la feuille ou doit s'inscrire la macro est feuil1 (Suivi des HT) et pour ceux qui ne marchent pas c'est en feuil7 ?
Capturer.JPG
Je ne sais pas si cela est une piste !
 

Pièces jointes

  • Capturer.JPG
    Capturer.JPG
    37 KB · Affichages: 85
  • Capturer.JPG
    Capturer.JPG
    37 KB · Affichages: 85

Paritec

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

Re Bonjour Roland Staple chasseur Mj le forum
alors moi j'ai testé avec la proposition de Roland et l'enregistrement et chez moi toujours niet !!!!!
Mj:) oui j'avais mis cela dans un des post je suis sous windows 8.1 64 bit avec Excel 2010 32 bit
Bon l'essentiel est que pour Chasseur maintenant cela marche, car c'est pour lui à la finale.
pour les options accès approuvé au code vba c'est bien coché de toutes façons pour tous les autres fichier cela fonctionne parfaitement, il n'y a que pour la manipulation comme le fait Chasseur que cela ne fonctionne pas du moins chez moi !!
alors le pourquoi là ?????
a+ à Tous
Papou:)
 

Roland_M

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

re

@Paritec: code procédure idem mais avec une petite variante pour vérif ...
1) la macro save mais ne close pas ! pour vérifier si le code est bien là !?
2) tu le refermeras sans sauver puisque c'est déjà fait !
3) tu le rechargeras pour voir si c'est bien sauvé avec code !?

Code:
'procédure:
'1) tu crées un classeur2.xlsm vide que tu sauvegardes, ici pour l'essai, à la base C:\TEMP <<<<<<<<<<<<<<<
'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

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

Set wbKDest = Workbooks.Open(Filename:="C:\TEMP\Classeur2.xlsm") '<<<<<<<< chemin <<<<<<<<<<
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.Save ' <<<<<< save simplement

End Sub
 

chasseur44

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

Après plusieurs tests avec un de mes collègues ; un coup ca marche, un coup ca marche pas ????? cela semble aléatoire ! Je n'y comprend (encore) plus rien !
ce matin j'ai essayé et mon découpage avec l'ajout des boutons fonctionnaient et maintenant cela ne marche plus !
A des môments mon premier fichier est OK et les suivants KO, je recommence la même chose et tout est KO (sans avoir rien changé, juste relancé)
 

chasseur44

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

Je redépose l'integralité de mon problème avec les fichiers adéquates et anonymisés !
Procédure : Détacher les deux fichiers dans le repertoire de votre choix et ouvrir le fichier .xlsm puis cliquer sur le bouton qui ouvrira la boite de dialogue d'ouverture de fichier , sélectionner le fichier Tdb malad ....
Bref descriptif : cette macro va découper le fichier par unité, rajouter un onglet vision division (qui permet à l'unité de se positionner par rapport au niveau N+1) et créer ces deux fameux TCD auxquelles je souhaite donc rajouter ce fameux bouton ainsi que sa macro !
Macro intitulé "crea_bouton_et_macro_ht" qui est dans la macro "traitement"

J'ai l'impression de revenir au point de démarrage
 

Pièces jointes

  • macro découpage et création tdb maladie par UM V5.xlsm
    49.7 KB · Affichages: 76
  • Tdb Maladie & AT Suivi UNITX.xlsm
    289 KB · Affichages: 82

Paritec

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

Re Chasseur et (Tous STAPLE Compris)
Ton problème n'a rien à voir avec ton fichier, c'est autre chose mais je ne sais pas encore quoi , mais je trouverai
a+
Papou:)
 
Dernière édition:

Roland_M

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

re

j'ai essayé et ça fonctionne !

maintenant, les pannes intermittentes, c'est comme avec les voitures, pas facile à déceler !

EDIT: Paritec on c'est croisé ! mais pour te dire que tu as raison, ce n'est pas le classeur qui est concerné
pas facile non plus de se faire comprendre !!!!!!
 

Discussions similaires

Réponses
1
Affichages
160
Réponses
0
Affichages
137

Statistiques des forums

Discussions
312 112
Messages
2 085 415
Membres
102 885
dernier inscrit
AISSOU