Je viens à peine de m'inscrire et je suis tout nouveau dans le VBA.
Je suis sur un projet où chacune de mes feuilles du classeur est protégée par un mot pour modification. Je voudrais que lorsque j'ôte la protection pour modification et que je ferme le fichier sans besoin de mettre la protection, qu'à la réouverture du classeur à l'emplacement de la feuille il me redemande le mot de passe pour modification.
Je voudrais rendre ce processus automatique.
Bonsoir Vby, et bienvenu sur XLD,
Une possibilité, à mettre impérativement dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Modifier nom de la feuille à protéger et le mot de passe
Sheets("Feuil1").Protect Password:="1234"
ThisWorkbook.Save
End Sub
Bonsoir Vby, et bienvenu sur XLD,
Une possibilité, à mettre impérativement dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Modifier nom de la feuille à protéger et le mot de passe
Sheets("Feuil1").Protect Password:="1234"
ThisWorkbook.Save
End Sub
Bonjour Galougalou, Vby,
Je ne sais pas si cela est possible d'interdire le tri.
La seule solution que je connaisse est de déverrouiller toutes les cellules accessibles puis de protéger la feuille en autorisant le filtrage mais pas le tri.
Voir cet exemple :
Bonjour, Je viens vers vous car j'ai un problème qui me tracasse la tête...:mad::mad: j'ai besoin de l'aide de génies expérimenté(e)s. Voici mon problème, j'ai un tableau de 3 colonnes avec 1000 lignes. Colonne 1 : Numéro magasin Colonne 2 : Nom du magasin Colonne 3 : Fermeture...
Merci beaucoup Sylvanu. ton code m'a beaucoup aidé :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Modifier nom de la feuille à protéger et le mot de passe
Sheets("Feuil1").Protect Password:="1234"
ThisWorkbook.Save
End Sub
Mon souci et, comme c'est un document partagé avec d'autres collègues, j'ai remarqué que lorsque je leur donne le mot de passe, ils peuvent ôter la protection pour apporter des modifications mais en retour ils peuvent aussi changer le mot de passe et c'est ca exactement que je ne veux pas.
Je veux juste qu'ils puissent, seulement quelques uns, ôter la protection et apporter des modifications à la feuille, mais en retour qu'ils ne puissent pas changer le mot de passe et qu'à la fermeture du fichier que mon mot de passe soit le seul de rigueur.
Merci encore pour vos contributions, je suis bien en Excel mais très novice en vba !
Bonjour Vby,
Le seul moyen que j'entrevois est d'utiliser un bouton sur la feuille avec une macro.
On gère un mot de passe "invité" par le bouton qui appelle un userform et un mot de passe "admin" par la macro Workbook_BeforeClose. De plus le mot de passe invité n'est pas modifiable. ( sauf à bidouiller le VBA évidemment )
En PJ une maquette avec dans l'userform :
VB:
Private Sub CommandButton1_Click()
If mdp = "invité" Then
Sheets("Feuil1").Unprotect Password:="admin"
Unload DemandeMdp
Else
mdp = ""
End If
End Sub
Depuis j'ai essayé de reproduire ton modèle qui m'arrangerait bien mais je n'arrive pas à faire lier le bouton de commande à l'affichage d'entrée du mot de passe
Depuis j'ai essayé de reproduire ton modèle qui m'arrangerait bien mais je n'arrive pas à faire lier le bouton de commande à l'affichage d'entrée du mot de passe
Bonjour,
Le plus simple est de mettre un dessin ou une forme sur la feuille, vous la cliquez et faites clic droit et "Affecter une macro", et vous sélectionnez PWD.mdp.
ou avec votre fichier, vous vous mettez en onglet Développeur/Mode création. Vous faites double clic sur votre bouton et renseignez la macro avec UserForm1.Show; ( 2eme PJ )