Sous VBA, j'aimerais que mes utilisateurs puissent modifier le chemin d un fichier où il se trouve par exemple sous leur PC afin de faire tourner la Macro mais sans pouvoir modifier le reste au risque de faire une bétise!
Workbooks.Open Filename:= _
"C:\Users\XXXXX\Downloads\Export.csv" (XXXXX sont leur identifiant)
Peut on mettre une protection sur certains modules VBA et d'autres NON? Par exemple peut on protéger un module et d'autres non!
Bonjour Looky,
Non, la protection est pour le VBA entier, non pour un module.
Ensuite, laissez un utilisateur "bidouiller" un module VBA, ce n'est peut être pas futé, ... sauf si vous avez du temps pour ceux qui appelleront au secours.
Pourquoi ne pas mettre ce chemin dans une cellule ? Le VBA n'aura qu'à ensuite le récupérer.
D'autant que si il n'y a juste leur identifiant "XXXXX" à modifier, demandez à l'utilisateur de ne rentrer que cette partie, le VBA reconstituera le chemin complet, par ex :
Code:
Workbooks.Open Filename:= "C:\Users\" & [A1] & ""\Downloads\Export.csv"
( si l'identifient est en A1.)
Une autre idée, est qu'à l'ouverture du fichier un Workbook_Open demande à l'utilisateur de rentrer son identifiant via une inputbox. Et il mémorise cette valeur dans une variable public pour que les autres modules puissent l'utiliser. Voir PJ.
Une autre idée, est qu'à l'ouverture du fichier un Workbook_Open demande à l'utilisateur de rentrer son identifiant via une inputbox. Et il mémorise cette valeur dans une variable public pour que les autres modules puissent l'utiliser. Voir PJ.
Ah super l idée, je ne pensais à ça , top! Et si je veux proteger le VBA pr que personne ne le voit et ni touche comme on fait, dsl , je programme un peu, mais je suis encore novice sur certaines fonctionnalités
Une autre idée, est qu'à l'ouverture du fichier un Workbook_Open demande à l'utilisateur de rentrer son identifiant via une inputbox. Et il mémorise cette valeur dans une variable public pour que les autres modules puissent l'utiliser. Voir PJ.
Ayez la curiosité d'éplucher ma PJ du post #3 !
Il vous faut trois choses :
1- Dans un module standard vous déclarez une variable public qui sera visible par tous les autres modules:
VB:
Public Identifiant
2- Dans Thisworkbook vous mettez la macro qui s'activera à l'ouverture du fichier :
Code:
Private Sub Workbook_Open()
Identifiant = InputBox("Veuillez entrer votre identifiant : ")
End Sub
3- Dans vos macro vous utilisez la variable Identifiant :
Code:
Sub Test()
MsgBox "Le chemin à utiliser est : " & Chr(10) & "C:\Users\" & Identifiant & "\Downloads\Export.csv"
End Sub