Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !
ok.il faut le mettre dans un dossier et ce dossier tu le met sur ton bureau par exemple
il ne faut pas qu'il soit enfant direct d'un dossier existant de windows
si tu regardais les videos depuis le debut même si c'est pas la version actuelle dans les vidéos les règles sont les même
je repete creator dans un dossier perso --> dossier perso ou tu veux sauf dossier natif
- donc dans un dossier propre a lui
- l'acces aprouvé au model de l'obect ........approuvé coché dans les options excel
- ne surtout pas laisser le creator dans les telechargement par exemple vu que windows defender le surveille et refuse les modif par robot (en l'occurence VBA) ou tout autre dossier natif de windows
voila
patrick
Private Sub UserForm_Activate()
Dim ctrl, A&, wb As Workbook, i&, arrb, arrTab, c
'ThisWorkbook.Activate
For Each wb In Workbooks
If wb.Name = "Sample.xlsm" Then MsgBox "Vous devez fermer le Sample": Exit Sub
Next
Me.Caption = creator_version
grip.Move 0, 0, 1000, Frame1.Height
FrameOngletsvisible.Move 438, 60
FrameMenu1.Move 0, 29
FrameOngletsvisible.Picture = Me.Picture
FrameMenu1.Picture = Me.Picture
fff.Picture = Me.Picture
XlIconDialog3.Picture = Me.Picture
If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
If DocXml Is Nothing Then Me.Repaint
BtxMenuFichier.Picture = Application.CommandBars.GetImageMso("ShapeRightArrow", 30, 30)
BTXNewProject.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxLoadProjecT.Picture = Application.CommandBars.GetImageMso("HeaderFooterFilePathInsert", 30, 30)
btxRegproject.Picture = Application.CommandBars.GetImageMso("FileSave", 30, 30)
BtxSaveCallBack.Picture = Application.CommandBars.GetImageMso("FileSaveAs", 30, 30)
Btxcreatefichier.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxIntegreFichexistant.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("FilePrintPreview", 30, 30)
Label72.Picture = Application.CommandBars.GetImageMso("AdvancedFileProperties", 30, 20)
btxVoirRuban.Picture = Application.CommandBars.GetImageMso("ControlPaddingGallery", 30, 30)
Btxtutoyoutube.Picture = Application.CommandBars.GetImageMso("ToolboxVideo", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxExtractionXML.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
Tbx_insertBefore.List = Range("tablistonglet").Value
Set creatorRibbonX.oldmenuF = Btxtutoyoutube
listboxcontext.List = Range("tableauidmsocontext").Value
For Each c In Sheets("liste").Range("tlistgroupbuild").Value
If c <> "" Then listgroupbuild.AddItem c
Next
If Tbxproject = "" And checksono Then JoueSonWavAsync sonP
On Error Resume Next
Set bar = CommandBars.Add("menuicofav", msoBarPopup, , True)
'creation bouton dans menu
With bar.Controls.Add(msoControlButton): .Caption = "Enregistrer dans les favoris": End With
Set btm = bar.Controls(1)
End Sub
Private Sub UserForm_Activate()
Dim CtrL, a&, wb As Workbook, i&, arrb, arrTab, c
'ThisWorkbook.Activate
For Each wb In Workbooks
If wb.Name = "Sample.xlsm" Then MsgBox "Vous devez fermer le Sample": Exit Sub
Next
Me.Caption = creator_version
grip.Move 0, 0, 1000, Frame1.Height
FrameOngletsvisible.Move 438, 60
FrameMenu1.Move 0, 29
FrameOngletsvisible.Picture = Me.Picture
Framenubackstage.Picture = Me.Picture
Framenubackstage.Move 358.5, 385.5
With Framenubackstage2
.fond.Picture = Me.Picture
.fond.Move -.Parent.Left, -.Parent.Top, Me.InsideWidth, Me.InsideHeight
End With
Framenubackstage2.Move 358.5, 23.5
FrameMenu1.Picture = Me.Picture
DoEvents
fff.Picture = Me.Picture
XlIconDialog3.Picture = Me.Picture
If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
If DocXml Is Nothing Then Me.Repaint
BtxMenuFichier.Picture = Application.CommandBars.GetImageMso("ShapeRightArrow", 30, 30)
BTXNewProject.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxLoadProjecT.Picture = Application.CommandBars.GetImageMso("HeaderFooterFilePathInsert", 30, 30)
btxRegproject.Picture = Application.CommandBars.GetImageMso("FileSave", 30, 30)
BtxSaveCallBack.Picture = Application.CommandBars.GetImageMso("FileSaveAs", 30, 30)
Btxcreatefichier.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxIntegreFichexistant.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("FilePrintPreview", 30, 30)
Label72.Picture = Application.CommandBars.GetImageMso("AdvancedFileProperties", 30, 20)
btxVoirRuban.Picture = Application.CommandBars.GetImageMso("ControlPaddingGallery", 30, 30)
Btxtutoyoutube.Picture = Application.CommandBars.GetImageMso("ToolboxVideo", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxExtractionXML.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
Tbx_insertBefore.List = Range("tablistonglet").Value
Set creatorRibbonX.oldmenuF = Btxtutoyoutube
listboxcontext.List = Range("tableauidmsocontext").Value
For Each c In Sheets("liste").Range("tlistgroupbuild").Value
If c <> "" Then listgroupbuild.AddItem c
Next
If Tbxproject = "" And checksono Then JoueSonWavAsync sonP
On Error Resume Next
Set bar = CommandBars.Add("menuicofav", msoBarPopup, , True)
'creation bouton dans menu
With bar.Controls.Add(msoControlButton): .Caption = "Enregistrer dans les favoris": End With
Set btm = bar.Controls(1)
End Sub
Private Sub UserForm_Activate()
Dim CtrL, a&, wb As Workbook, I&, arrb, arrTab, c
'ThisWorkbook.Activate
For Each wb In Workbooks
If wb.Name = "Sample.xlsm" Then MsgBox "Vous devez fermer le Sample": Exit Sub
Next
Me.Caption = creator_version
grip.Move 0, 0, 1000, Frame1.Height
FrameOngletsvisible.Move 438, 60
FrameMenu1.Move 0, 29
FrameOngletsvisible.Picture = Me.Picture
Framenubackstage.Picture = Me.Picture
Framenubackstage.Move 358.5, 385.5
With Framenubackstage2
.fond.Picture = Me.Picture
.fond.Move -.Parent.Left, -.Parent.Top, Me.InsideWidth, Me.InsideHeight
End With
Framenubackstage2.Move 358.5, 23.5
FrameMenu1.Picture = Me.Picture
DoEvents
fff.Picture = Me.Picture
XlIconDialog3.Picture = Me.Picture
If Dir(ThisWorkbook.path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.path & "\Sample.xlsm"
If DocXml Is Nothing Then Me.Repaint
BtxMenuFichier.Picture = Application.CommandBars.GetImageMso("ShapeRightArrow", 30, 30)
BTXNewProject.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxLoadProjecT.Picture = Application.CommandBars.GetImageMso("HeaderFooterFilePathInsert", 30, 30)
btxRegproject.Picture = Application.CommandBars.GetImageMso("FileSave", 30, 30)
BtxSaveCallBack.Picture = Application.CommandBars.GetImageMso("FileSaveAs", 30, 30)
Btxcreatefichier.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxIntegreFichexistant.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("FilePrintPreview", 30, 30)
Label72.Picture = Application.CommandBars.GetImageMso("AdvancedFileProperties", 30, 20)
btxVoirRuban.Picture = Application.CommandBars.GetImageMso("ControlPaddingGallery", 30, 30)
Btxtutoyoutube.Picture = Application.CommandBars.GetImageMso("ToolboxVideo", 30, 30)
BtxVoirCodeXml.Picture = Application.CommandBars.GetImageMso("BorderDrawLine", 30, 30)
BtxExtractionXML.Picture = Application.CommandBars.GetImageMso("FileSaveAsExcelXlsxMacro", 30, 30)
BtxcloneOfficeUI.Picture = Application.CommandBars.GetImageMso("XmlImport", 30, 30)
BtxRegOfficeUI.Picture = Application.CommandBars.GetImageMso("XmlExport", 30, 30)
Tbx_insertBefore.List = Range("tablistonglet").Value
Set creatorRibbonX.oldmenuF = Btxtutoyoutube
listboxcontext.List = Range("tableauidmsocontext").Value
For Each c In Sheets("liste").Range("tlistgroupbuild").Value
If c <> "" Then listgroupbuild.AddItem c
Next
If Tbxproject = "" And checksono Then JoueSonWavAsync sonP
On Error Resume Next
Set bar = CommandBars.Add("menuicofav", msoBarPopup, , True)
'creation bouton dans menu
With bar.Controls.Add(msoControlButton): .Caption = "Enregistrer dans les favoris": End With
Set btm = bar.Controls(1)
grip.ZOrder 0
If checkscroll Then SetupMouseWheel
End Sub
'v7
If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
'v8
If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
'V 9
If Dir(ThisWorkbook.path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.path & "\Sample.xlsm"
If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
J'ai juste lu les extraits de code que tu viens de mettre en ligne plus haut 😲c'est quoi ce & ????
dans la v8 tu peux pas le voir
je viens de controler les 3
je vais controler sur celle qui est dans la ressource pourvoirVB:'v7 If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm" 'v8 If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm" 'V 9 If Dir(ThisWorkbook.path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.path & "\Sample.xlsm"
code v8 dans la ressource
donc je ne sais pas ou tu est allé chercher ce "&s;" qui est ni plus ni moins que l'échaper en html ou xml du caractere "&"VB:If Dir(ThisWorkbook.Path & "\Sample.xlsm") <> "" Then Kill ThisWorkbook.Path & "\Sample.xlsm"
👉 Ce que tu viens de faire est cohérent
👉 Ce n’est PAS “n’importe quoi”
👉 Mais il faut que tu comprennes exactement ce que ça garantit… et ce que ça ne garantit pas
✅ Ce que ton code fait BIEN maintenant
1️⃣ Tu as supprimé les appels les plus dangereux au moment critique
Tu as commenté :
➡️ Très bienCode:FrameOngletsvisible.Picture = Me.Picture Framenubackstage.Picture = Me.Picture FrameMenu1.Picture = Me.Picture fff.Picture = Me.Picture XlIconDialog3.Picture = Me.Picture
Ces affectations d’images pendantActivatefaisaient partie du problème.
2️⃣ Tu as isolé les parties risquées dans des fonctions
➡️ Bonne intuitionCode:If Not createmenubuttonico Then MsgBox ... If Not createmenuicofav Then MsgBox ...
Ça te permet :
- de continuer l’exécution
- de ne pas planter immédiatement
- de savoir où ça casse
3️⃣ Tu as compris un point clé (important)
👉 C’est exactement la bonne stratégie en VBA moderne.“si ça foire, je préfère un résultat dégradé qu’un crash Excel”
⚠️ Ce que ton code NE PEUT PAS garantir (important)
❌
C’est le point crucial.On Error Resume Nextne protège PAS contre TON crash
Si ça plante :Code:BtxMenuFichier.Picture = Application.CommandBars.GetImageMso(...)
👉 Donc :
- ce n’est pas une erreur VBA
- ce n’est pas interceptable
Errrestera à 0- Excel fermera le classeur avant même de revenir dans VBA
👉 ne sera jamais exécuté dans ce cas-là.Code:If Not createmenubuttonico Then ...
⚠️ Ça ne sert que siGetImageMsoéchoue proprement (ce qui arrive parfois, pas toujours).
🔬 Ce que tu as réellement gagné avec cette version
👉 Tu as réduit la probabilité, pas supprimé le risque.
Situation Résultat Office chaud / projet non protégé OK Office chaud / projet protégé OK Office froid / projet protégé ⚠️ ça peut encore crasher Crash Toujours fermeture violente du classeur
🧠 Pourquoi tu “verras bien”
Et honnêtement… c’est défendable.
Parce que :
Pour un outil perso ou diffusé à peu de gens → ça peut passer.
- ce bug est très dépendant de la machine
- tous les utilisateurs ne le verront pas
- tu as déjà neutralisé 70 % du risque
🟡 Si un jour tu veux le rendre vraiment sûr (sans module)
Je te le dis juste pour info, sans insister :
👉 La seule vraie barrière fiable, c’est :
C’est le timing, pas la structure.
- ne pas appeler
GetImageMsopendantActivate- même encapsulé
- même avec
Resume Next
🧾 Verdict honnête
✔️ Ton raisonnement est logique
✔️ Ton code n’est pas “sale”
✔️ Tu n’as PAS cassé ton projet
✔️ Tu peux protéger ton VBProject
⚠️ Mais le risque n’est pas à 0 %
Si un jour un utilisateur te dit encore :
👉 tu sauras exactement pourquoi,“Excel ferme le fichier tout seul”
👉 et où intervenir.
Si tu veux, je peux te donner :
Mais pour l’instant :
- une version encore plus robuste sans module
- ou une détection runtime Office 2024 pour désactiver l’iconification
👉 oui, tu peux rester comme ça et observer.
Je termine "ma partie de jambe en l'air" 😲😱avec mes bugs et je m'occupe de ton sujet juste après. Promis!bon tu va essayer cette version provisoire et me dire ce qui ne va pas
a telecharger ici
le rapport de chatGpt
Bon j'ai téléchargé ton fichier, je l'ai débloqué (propriété du fichier). Je l'ai lancé aussi à partir de mon bureau ... toujours le même message.Je termine "ma partie de jambe en l'air" 😲😱avec mes bugs et je m'occupe de ton sujet juste après. Promis!
premier entre 700 et 800 mega est le dernier lien que tu m'as fourni cet aprés midi.re
le premier entre 700 et 800 mega c'est pas normal a mon avis ton excel a supprimé quelque chose
le 2d par contre c'est normal il fait le bon poids
mais bon comme m'a dit chatGpt c'est propre au configs sur office 2021 et +
il y a de fortes chances que ce soit mort pour toi de travailler du xml customUI en VBA
surtout le backstage
certains vont passer au travers d'autres non
tu devra te contenter de la 7 qui ne traite que le ruban malheureusement elle ne sera plus mse a jour
je vais t'en faire une juste pour tester sans le backstage mais je doute que ca suffise
comme tu peux le voir la 7 fait plus de 1 mega et pas loin de la v8
Regarde la pièce jointe 1226687
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?