Choix de configurations a l'ouverture d'un fichier Excel [Fermé]

Signaler
Messages postés
4
Date d'inscription
dimanche 23 octobre 2016
Statut
Membre
Dernière intervention
24 octobre 2016
-
Messages postés
4
Date d'inscription
dimanche 23 octobre 2016
Statut
Membre
Dernière intervention
24 octobre 2016
-
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

4 réponses

Messages postés
8486
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mars 2021
1 621
Bonjour,

Pourquoi faire compliqué quand on peut faire simple ?

Créer directement 3 modèles !!!
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci


Bonjour Jérémy,

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 si G1 = 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 ».

Cordialement.  😊
Messages postés
8486
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mars 2021
1 621
Bonjour,

Il est préférable d'utiliser une propriété de fichier personnalisée (CustomDocumentProperties).

Cdlt
Patrice

.
Utilisateur anonyme >
Messages postés
8486
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mars 2021

 
Bonjour Patrice33740,

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


Je pense que ça devrait aller.

Cordialement.  😊
 
Messages postés
4
Date d'inscription
dimanche 23 octobre 2016
Statut
Membre
Dernière intervention
24 octobre 2016
> Utilisateur anonyme
Merci je vais tester
Messages postés
4
Date d'inscription
dimanche 23 octobre 2016
Statut
Membre
Dernière intervention
24 octobre 2016

Merci pour ton retour.
Cependant je désire pouvoir utiliser le fichier de base sur plusieurs postes distincts par plusieurs utilisateurs différents.
Messages postés
4
Date d'inscription
dimanche 23 octobre 2016
Statut
Membre
Dernière intervention
24 octobre 2016

Merci pour vos contributions je vais essayer ca cette semaine!
Merci beaucoup