Excel Changer Workbook_Open par bouton

Résolu/Fermé
Sweetpatapouf - 27 juin 2011 à 12:32
 Sweetpatapouf - 28 juin 2011 à 11:24
Bonjour,

Je cherche à fabriquer un un fichier excel source de plusieurs fichiers qui doit être utilisable par des gens qui ne connaissent rien en VBA. Voire en excel tout court.

Le premier fichier à construire comporte beaucoup de formules matricielles. Il est donc important d'interdire le calcul automatique à l'ouverture du fichier (sinon, excel plantee et ne s'ouvre jamais, j'ai testé).

Dans un second temps, toutes les formules sont supprimées. Le fichier se transforme ensuite en un outil de simulation avec nettement moins de formule. Ce second fichier doit être systèmatiquement mis en calcul automatique, sinon rien ne marche et les destinataires du fichiers sont pris de panique.

Bref j'ai donc besoin en cours de route de changer la Private Sub Workbook_Open

Mon idée était de créer un onglet administrateur avec un bouton "construire le fichier source" et un bouton "convertir en outil de simul" qui réaliseraient toutes les étapes, y compris le changement du code dans this workbook...

Est-ce que c'est possible, et si oui, comment je fais?

Merci d'avance de l'aide que vous pourriez m'apporter.

A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 714
27 juin 2011 à 17:34
bonjour

Pourquoi tu ne crées pas 2 classeurs distincts puisqu'ils ont des fonctions différentes ?

Sinon, tu peux t'amuser à transformer le code car c'est possible mais tu n'as pas intérêt à avoir le moindre bug si tu veux garder quelques cheveux.
0
Sweetpatapouf
27 juin 2011 à 18:27
Je ne peux pas en créer plusieurs. Il s'agit non pas de différents classeurs, mais de différentes étapes d'un même processus.

En outre, pour une question de fiabilité des données, je préférer éviter la multiplication des données. Entre les lignes pas prises dans le copier / collé et les oublis de mise à jour de tel ou tel élément (type grille des salaires), j'aime autant éviter les multiplications de manip.


Et oui, je vérifie dans tout les sens mes macro...

Cela dit, comment je met dans mon bouton de formulaire "changer le code dans "thisworkbook"?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 714
28 juin 2011 à 00:21
bonjour

comment je met dans mon bouton de formulaire "changer le code dans "thisworkbook"?


Une excellente lecture à assimiler.
0
Sweetpatapouf
28 juin 2011 à 11:24
Merci, ça m'a permi de trouver la solution par rebonds...

Au cas où quelqu'un en aurait besoin :

'Efface le contenu des macros dans ThisWorkbook"

With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close

End With

'Permet de réécrire un macro ligne par ligne :

With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, "Msgbox ""toto"""
.InsertLines 3, "End Sub"
End With


Et voilà, ça marche c'est merveilleux à condition d'activer dans outils/référence Microsoft visual basic for application extensibility 5.3 et d'avoir autorisé l'accès approuvé au modèle d'objet du projet vba dans le centre de gestion de la confidentialité...
0