XL 2010 Limitation de la saisie d'une valeur

man.jul

XLDnaute Nouveau
Afin de limiter l'utilisation de la valeur "CAV" dans le tableau, je souhaiterais que la saisie (et le copier/coller) de cette valeur ne soit autorisée dans le tableau uniquement par la saisie d'un mot de passe ou par le biais du déverrouillage de la protection de la feuille par exemple.
J'ai interdit son utilisation par la validation des données mais par exemple est-il possible d'enlever ponctuellement cette validation afin de permettre la saisie de cette valeur?

Merci par avance
 

Pièces jointes

  • ESSAI.xlsx
    10.2 KB · Affichages: 12
Solution
Bonjour man.jul, le forum,

Ah oui j'avais oublié la fermeture par la croix, fichier (3) :
VB:
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If TextBox1 <> "Manu" Then Application.EnableEvents = True: End
End Sub
A+

job75

XLDnaute Barbatruc
Bonjour man.jul, Roblochon,

Oui l'oubli d'un petit bonjour est malheureux.

Dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target.Areas 'si entrées multiples, pour avoir des cellules jointives
    If Application.CountIf(Target, "CAV") Then
        Application.Undo 'annule les modifications
        UserForm1.Show 'demande le mot de passe
        If Not Application.EnableEvents Then Application.Undo 'rétablit les modifications
        Exit For
    End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
Dans le code de l'UserForm :
Code:
Private Sub CommandButton1_Click()
If TextBox1 <> "Manu" Then Application.EnableEvents = True 'repérage
Unload Me
End Sub
Il faudra aussi protéger l'accès au VBAProject par mot de passe.

A+
 

Pièces jointes

  • ESSAI(1).xlsm
    21.9 KB · Affichages: 11

job75

XLDnaute Barbatruc
Dans ce fichier (2) voici une solution intéressante avec l'instruction End :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target.Areas 'si entrées multiples, pour avoir des cellules jointives
    If Application.CountIf(Target, "CAV") Then
        Application.Undo 'annule les modifications
        UserForm1.Show 'demande le mot de passe
        Application.Undo 'rétablit les modifications
        Exit For
    End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
VB:
Private Sub CommandButton1_Click()
If TextBox1 = "Manu" Then Unload Me Else Application.EnableEvents = True: End
End Sub
 

Pièces jointes

  • ESSAI(2).xlsm
    22 KB · Affichages: 5

man.jul

XLDnaute Nouveau
Dans ce fichier (2) voici une solution intéressante avec l'instruction End :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target.Areas 'si entrées multiples, pour avoir des cellules jointives
    If Application.CountIf(Target, "CAV") Then
        Application.Undo 'annule les modifications
        UserForm1.Show 'demande le mot de passe
        Application.Undo 'rétablit les modifications
        Exit For
    End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
VB:
Private Sub CommandButton1_Click()
If TextBox1 = "Manu" Then Unload Me Else Application.EnableEvents = True: End
End Sub
 

man.jul

XLDnaute Nouveau
Bonjour

Dans le cas où je saisie la valeur CAV et que je ferme la fenêtre de saisie du mot de passe en cliquant sur la croix (sans rien saisir comme mot de passe) la valeur reste dans la saisie.
Je souhaiterais que la valeur soit effacée de la cellule si l’on ferme la fenêtre du mot de passe comme dans le cas d’une mauvaise saisie de mot de passe.
Merci bien
 

job75

XLDnaute Barbatruc
Bonjour man.jul, le forum,

Ah oui j'avais oublié la fermeture par la croix, fichier (3) :
VB:
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If TextBox1 <> "Manu" Then Application.EnableEvents = True: End
End Sub
A+
 

Pièces jointes

  • ESSAI(3).xlsm
    22.6 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 693
Membres
103 372
dernier inscrit
BibiCh