Bonjour,
Je viens vers vous car je suis bloqué actuellement dans la conception de mon fichier Excel VBA.
J’ai un niveau moyen en vba et je n’ai jamais vu ce cas en cours.
Je souhaiterai lorsque j’ouvre mon fichier Excel de base avoir la possibilité de l’ouvrir sous différentes configurations.
J’ouvre le fichier de base (ou modèle) et je choisi « configuration 1 » ; « configuration2 » ; « configuration3 » dans un message box….
Une fois que le choix est fait le fichier sera enregistré et rempli sans ne plus jamais demander le choix de configuration.
Chaque configuration est un classeur Excel avec ses onglets.
J’espère avoir été clair pouvez-vous m’aider et me sortir de ce blocage !!
Merci d’avance pour votre aide
Jérémy
A voir également:
Choix de configurations a l'ouverture d'un fichier Excel
Tout ce que je vais te proposer est dans ton fichier de base.
Dans une cellule non déjà utilisée, par exemple G1, mets-y 0 ;
à l'ouverture de ce classeur modèle, la macro Workbook_Open()
(de ThisWorkbook) affichera ton MsgBox seulement siG1 = 0.
Tu choisiras alors une de tes 3 configurations, et tu inscriras le n°
correspondant en G1 : 1, 2, ou 3.
Ton choix est fait, et quand tu sauvegarderas ton fichier modèle,
ce choix en G1 sera sauvegardé en même temps.
À la prochaine ouverture de ce fichier, pas de MsgBox puisque
G1 est différent de 0.
Pour que tes utilisateurs ne modifient pas eux-même G1 :
Laisse la protection de départ : ☑ Verrouillée (donc le code VBA
devra déprotéger la feuille, modifier G1, reprotéger la feuille).
Tu peux cacher cette cellule en mettant une couleur de police blanc
(mais elle se verra quand même si incluse dans une sélection).
Autre solution : au lieu de la cellule G1, utilise un nom défini Config qui jouera le même rôle.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Selon ta recommandation, je propose ceci à Jérémy :
A) Dans ThisWorkbook
Private Sub Workbook_Open()
On Error Resume Next ' évite une erreur si le nom est déjà existant
ActiveWorkbook.CustomDocumentProperties.Add "Config", 0, 1, 0
End Sub
La propriété Config est créée et initialisée à 0.
B) Dans Module1
Option Explicit
Sub SetConfig()
Dim n As Byte
If ActiveWorkbook.CustomDocumentProperties("Config") <> 0 Then Exit Sub
Do
n = InputBox("n° Config (1 à 3) :")
Loop Until n >= 1 and n <= 3
ActiveWorkbook.CustomDocumentProperties("Config") = n
End Sub