XL 2010 Mot de passe pour validation cellule Excel

Excel_Ludo

XLDnaute Nouveau
Bonjour à Tous,

Je cherche comment mettre en place un moyen qui permettrait lorsque je m'identifie de créer une alerte demandant de renseigner un mot de passe. Si mot de passe ok, alors la cellule mentionne mon nom, si pas ok, alors la cellule n'inscrit rien.

Je joins le fichier Excel que j'ai créé. L'idée est lorsque je m'identifie en cellule F6 (menu déroulant), alors une fenêtre apparait me demandant mon mot de passe colonne M. Si mot de passe OK, alors F6 mentionne mon nom. Si pas OK, alors F6 ne mentionne rien.

D'avance merci pour votre aide. Petit détails, je ne maitrise absolument pas les macros... Suis novice dans ce domaine.
 

Pièces jointes

  • ZSE-I-0129_annexe_8.xlsx
    133.2 KB · Affichages: 29

Lolote83

XLDnaute Barbatruc
Re bonjour,
Voici le code commenté
VB:
Public xFlag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If xFlag = True Then            'Si Drapeau=Vrai
        xFlag = False               'alors on passe à Faux
        Exit Sub                    'On sort
    End If                          'Fin Si
    If Not Intersect(Target, [F6]) Is Nothing Then                              'Si Cellule F6 change
        xRep = InputBox("Veuillez saisir votre mot de passe", "MOT DE PASSE")       'Boite de dialogue pour MDP
        If xRep <> "" Then                                                          'Si Réponse <> vide
            For Each xCell In Range("M3:M11")                                           'On boucle sur toutes les cellules M3:M11 pour trouver correspondance
                If xCell = Val(xRep) Then                                                   'Si cellule testée (M3 à M11) = Ce qui a été saisie dans boite d edialogue
                    If xCell.Offset(0, -1) = Target Then                                        'Si la cellule d'a coté (L3 à L11) = Nom de la liste déroulante
                        MsgBox "OK"                                                                 'On affiche le message OK
                        GoTo Suite                                                                  'On va à "SUITE"
                    End If                                                                      'Fin Si
                End If                                                                      'Fin SI
            Next xCell                                                                  'Fin Boucle
            MsgBox "Erreur de mot de passe", vbCritical, "MOT DE PASSE"                 'Pas de correspondance, donc affichage message Erreur MDP
            xFlag = True                                                                'Drapeau = Vrai
            [F6] = Empty                                                                'On met la cellule F6 à vide
Suite:                                                                          'SUITE
        Else                                                                        'Sinon
            xFlag = True                                                                'Drapeau = Vrai
            [F6] = Empty                                                                'On met la cellule F6 à vide
        End If                                                                      'Fin Si
    End If                                                                      'Fin Si
End Sub
@+ Lolote83
 

Excel_Ludo

XLDnaute Nouveau
Re,
l'idée est la même que sur le précédent fichier, hormis que les cellules sont en P. lorsque je saisis mon nom par menu déroulant, je dois valider un mot de passe, si bon, le nom reste, si pas bon, le nom ne reste pas.

J'espère être clair... Si non, n'hésite pas à me le dire,

A+
 

Lolote83

XLDnaute Barbatruc
Re bonsoir,
Remplace la ligne [F6] = Empty par Target=Empty
puis de même pour la ligne [P7:p24] = Empty par Target=Empty
Cela devrait fonctionner.
Du coup, je te remet le code complet
VB:
Public xFlag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If xFlag = True Then            'Si Drapeau=Vrai
        xFlag = False               'alors on passe à Faux
        Exit Sub                    'On sort
    End If                          'Fin Si
    If Not Intersect(Target, [P7:P24]) Is Nothing Then                              'Si Cellule F6 change
        xRep = InputBox("Veuillez saisir votre mot de passe", "MOT DE PASSE")       'Boite de dialogue pour MDP
        If xRep <> "" Then                                                          'Si Réponse <> vide
            For Each xCell In Range("W4:W12")                                           'On boucle sur toutes les cellules W4:W12 pour trouver correspondance
                If xCell = Val(xRep) Then                                                   'Si cellule testée (W4 à W12 = Ce qui a été saisie dans boite d edialogue
                    If xCell.Offset(0, -1) = Target Then                                        'Si la cellule d'a coté (V4 à V12) = Nom de la liste déroulante
                        MsgBox "OK"                                                                 'On affiche le message OK
                        GoTo Suite                                                                  'On va à "SUITE"
                    End If                                                                      'Fin Si
                End If                                                                      'Fin SI
            Next xCell                                                                  'Fin Boucle
            MsgBox "Erreur de mot de passe", vbCritical, "MOT DE PASSE"                 'Pas de correspondance, donc affichage message Erreur MDP
            xFlag = True                                                                'Drapeau = Vrai
            Target = Empty
Suite:                                                                          'SUITE
        Else                                                                        'Sinon
            xFlag = True                                                                'Drapeau = Vrai
            Target = Empty
        End If                                                                      'Fin Si
    End If                                                                      'Fin Si
End Sub
@+ Lolote83
 

Excel_Ludo

XLDnaute Nouveau
Lolote83,

Ca ne fonctionne pas. lorsque je saisis le code, il me dit à chaque fois que le code n'est pas le bon.
Pour rappel, je suis plus que novice dans les macros. je n'en jamais fais, c'est la première fois. J'espère ne pas t'agacer, pas mon but.
 

Lolote83

XLDnaute Barbatruc
Re bonsoir,
Je suis désolé mais cela fonctionne chez moi.
Si MDP correct, on a le message OK et le nom reste affiché dans la cellule adéquate
Si MDP faux, message "Erreur de mot de passe" et effacement de la cellule en question
Si Clic sur Annuler, rien ne se passe.
@+ Lolote83
 

Discussions similaires

Réponses
2
Affichages
163
Réponses
5
Affichages
404
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 215
Messages
2 086 318
Membres
103 176
dernier inscrit
jean.yvesjean.yves