Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2011, 10h28   #1
Futur Membre du Club
 
Inscription : mai 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 58
Points : 16
Points : 16
Par défaut Demander un mot de passe pour modifier une cellule excel

Bonjour, je souhaiterai demander un mot de passe à la modification d'une cellule.

(édit: finalement j'ai réussi à lier une procédure à la modification d'une cellule, je faisais une erreur en écrivant "Workbook_SheetChange au lieu de "WorkSheet_Change" je crois. Grâce à cette procédure évenementielle je peux conditionner le changement de la cellule à la demande d'un mot de passe:
Le test:
Code :
1
2
3
4
5
6
7
8
9
Sub WorkSheet_Change(ByVal Target As Range)
     If Target = Range("UTILISATEUR") Then
        Dim MDP As Variant
        Uti_Actuel = Target.Value
        MDP = Application.InputBox("Entrer le mot de passe: ", "Mot de passe")
        If MDP = "***" Then Exit Sub
        Target.Value = Uti_Actuel
    End If
End Sub
Ce code fonctionne (testé du moins quand la feuille n'est pas protégée).

Mais j'aurai préféré pouvoir protéger la cellule par un vrai mot de passe.
Or, si je protège la feuille avec un mot de passe, lorsqu'on tente de modifier la cellule, il y a un message qui dit que la feuille est protégée, mais sans proposition de déprotéger la feuille. Or le fichier s'adresse à des personnes qui ne sauront pas forcément comment dé-protéger la cellule même s'ils auront le mot de passe. Je voudrai qu'un message demande le mot de passe direcetement quand on essaye de modifier la cellule.

Pour cela j'ai essayé ce code après avoir protéger la feuille d'un mot de passe:
Code :
1
2
3
4
5
Sub WorkSheet_Change(ByVal Target As Range)
     If Target = Range("UTILISATEUR") Then
        ActiveWorsheet.Unprotect
    End If
End Sub
Mais quand je cherche à modifier la cellule, la procédure ne se réalise plus (sans doute du à la protection de la feuille. Comment faire?

Merci d'avance pour l'aide que vous pourrez m'apporter.
statista est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 20h37   #2
Invité régulier
 
Homme
Inscription : septembre 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 6
Points : 7
Points : 7
Salut,

Le plus simple est peut être de déverrouiller les cellules accessibles aux utilisateurs ? (Format de cellule, protection, décocher Verrouiller)

Cdt,
n
neozenfragance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 20h52   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Bonjour,

Peut etre solution qui t'irait
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public maValeur As Variant
Public Macellule As Range
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Macellule.Address And maValeur <> Macellule.Value Then
    If InputBox("mot de passe") <> "Pass" Then Target.Value = maValeur
End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
maValeur = Target.Value
Set Macellule = Target
End Sub
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 09h25   #4
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

on peut mettre des mots de passe par plage :
outils => protection => permettre aux utilisateurs de modifier des plages...

Cliquez sur "Nouvelle..." pour créer une plage protégée par mot de passe

Puis cliquez sur "Protéger la feuille" en bas à gauche ou dans Outils => Protection.

Lors de la tentative de modification des plages protégées, le mot de passe est demandé directement.
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h02.


 
 
 
 
Partenaires

Hébergement Web