Inscrire des données dans un UF externe

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 !

Xtian_Québec

XLDnaute Occasionnel
Salut le Forum, je sollicite encore votre aide pour résoudre mon problème.

J'ai un fichier "DMI_Contrôle.xls" dont toutes les feuilles sont masquées et qui affiche un UserForm à l'ouverture (avec Workbook_Open). Ce Userform demande un mot de passe à l'utilisateur afin d'afficher les feuilles de ce classeur. Un nombre restreint de personnes ont le mot de passe. Si l'utilisateur n'inscrit pas le bon mot de passe, le fichier se referme.

Mon problème est justement causé par ce Userform. En fait, les utilisateurs du fichier "exécution.xls" n'ont pas nécessairement accès au fichier "DMI_Contrôle.xls" mais des données du fichier "DMI_Contrôle.xls" sont nécessaires dans le fichier "exécution.xls". J'ai donc un code qui ouvre le fichier DMI_Contrôle.xls pour récupérer les données nécessaires mais le Userform demande le mot de passe.

Comment "inscrire" automatiquement (par code) le mot de passe dans ce UserForm ? Voici une partie du code que j'utilise pour récupérer les données. À quel endroit, si c'est possible, dois-je insérer le mot de passe?

Mon UserForm se nomme "frmLogin" et contient un textbox nommé "tbPW", un bouton OK nommé "btnOKPW" et un bouton Annuler nommé "btnAnnulerPW"

Mon Code:
...
Set ab = ActiveWorkbook
Workbooks.Open ThisWorkbook.Path & "\DMI_Contrôle.xls"
# # # LE PROBLÈME EST ICI # # #
Application.ScreenUpdating = False
'Vérification du USER ID
Set wb = ActiveWorkbook
wb.Sheets("UserID").Visible = True
wb.Sheets("UserID").Select
Range("C12").Select
...

Merci pour votre aide
@+++
Xtian_Québec
 
Re : Inscrire des données dans un UF externe

Salut Xtian_Québec et le Forum

Un idée à voir si celà pourrait aller

Dans le Fichier avec le Userform (auto_open)

Code:
Private Sub Workbook_Open()
On Error Resume Next
    Workbooks("exécution").Activate
    If Err <> 0 Then
    MsgBox ("Pas ouvert")
    UserForm1.Show
    Else
    MsgBox ("Déjà ouvert")
    End If
End Sub

Et dans l'autre fichier

Code:
Sub ouvrir()
 
Set ab = ActiveWorkbook
Workbooks.Open ThisWorkbook.Path & "\DMI_Contrôle.xls"
'
End Sub

Mytå
 
Re : Inscrire des données dans un UF externe

Re Mytå et le forum

Un gros merci Mytå, le fameux UserForm apparaît toujours et mon problème persiste...entre temps, j'ai fouiner ici et là et je viens, il y a quelques minutes à peine, trouver une solution à mon pb...

Au lieu de protéger l'affichage de mon fichier "contrôle"avec un UF à l'ouverture et un mot de passe, j'ai enregistrer mon fichier avec enregistrer-sous + options générales en sélectionnant un mot de passe pour protéger mon fichier...Pas de mot de passe, pas d'accès au fichier et c'est ce que je veux. Seulement quelques utilisateurs...

Pour mon autre fichier qui doit consulter ce fichier protéger, j'ai ajouté le "password" dans mon code et tout est OK présentement...

Workbooks.Open ThisWorkbook.Path & "\DMI_Contrôle.xls", , , , "Motpasse", "MotPasse"

Mon seul pb maintenant sera de m'assurer que les utilisateurs ne changeront pas le mot de passe dans le premier fichier car le mot de passe sera "fixe" dans mon code...à moins qu'il y ait une manière de récupérer le dernier mot de passe du fichier "protéger" et de copier cette valeur à un endroit quelconque de mon fichier et récupérer cette valeur dans mon code...Je crois que c'est impossible car pour obtenir le mot de passe, il faut d'abord ouvrir le fichier...

Un gros merci et si tu as d'autres idées, je suis preneur...
@+++
Xtian_Québec
 
Re : Inscrire des données dans un UF externe

Re le Forum

Pour éviter la modification

dans before_close force le motde passe

ActiveWorkbook.SaveAs Filename:="C:\Ton_fichier.xls", FileFormat:=xlNormal , Password:="abc", WriteResPassword:="def"

Mytå
 
Re : Inscrire des données dans un UF externe

Re Mytå , le forum

Brillant cher Watson !!!

Très bonne idée...Le seul petit hic, c'est que le fichier "controle" est unique et il y a plusieurs fichiers "exécution" qui interrogent ce fichier. Le code dans les fichiers "exécution" est fixe dans le code

Workbooks.Open ThisWorkbook.Path & "\DMI_Contrôle.xls", , , , "MotPasse", "MotPasse".

Je pourrais effectivement forcer le mot de passe dans le fichier "contrôle" avec

ActiveWorkbook.SaveAs Filename:="C:\Contrôle.xls", FileFormat:=xlNormal , Password:="MotPasse", WriteResPassword:="MotPasse"

pour m'assurer qu'il coïncide avec mon code mais je ne vois pas l'intérêt de modifier un mot de passe si à la fermeture du fichier, il est "forcer"...Les quelques utilisateurs doivent connaître ce mot de passe pour pouvoir faire des modifications dans le fichier "contrôle"...donc, s'il est toujours forcer, à quoi bon le changer !

Par contre, avec ton idée, j'ai deux questions en tête :
1) Est-il possible d'avoir 2 mot de passe dans un fichier, un variable que l'on peut changer à demande et un autre fixe, genre mot de passe administrateur...Si c'est possible, le mot de passe administrateur serait fixe dans le fichier "contrôle" et serait utiliser dans le code des fichiers "exécution". L'autre serait utiliser par les utilisateurs et il pourrait être changé...Et-ce possible ???

2) Je pensais utiliser un fichier secret indépendant des deux autres qui servirait d'intermédiaire entre mes fichiers...Dans mon code ActiveWorkbook.SaveAs , je pourrais ajouter du code pour envoyer le nouveau mot de passe dans le fichier intermédiaire et récupérer ce mot de passe avec le code Workbooks.Open dans les fichiers "exécution". À cet effet, j'utilise déjà un autre fichier externe qui se nomme "AIDE.xls" et qui contient des instructions, des explications concernant mon fichier "exécution". Je pourrais cacher le mot de passe dans ce fichier, dans une feuille masquée, dans la cellule HA45673 par exemple...

Si le # 1 est impossible, je crois que je vais baragouiner quelques codes avec le # 2...

Merci encore de ton aide, c'est vraiment apprécié
@+++
Xtian_Québec
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
234
Retour