Menu déroulant

zizou026 Messages postés 97 Date d'inscription dimanche 1 février 2009 Statut Membre Dernière intervention 14 octobre 2021 - 23 févr. 2011 à 10:51
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 15 mai 2011 à 16:39
Bonjour, pouvez-vous ? SVP me dire comment je peux bloquer une cellule Excel après validation du fichier, sachant que la cellule appartient à une liste de données de menu déroulant. Une fois valider seul l’administrateur doit avoir accès pour la modification. Par avance merci de votre aide.
Merci de voir fichier : http://www.cijoint.fr/cjlink.php?file=cj201102/cijX63zHw8.xls

2 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
23 févr. 2011 à 14:44
Bonjour, je te propose une solution, commence par rajouter une feuille nommée donnees,

Puis Alt+F11 pour modifier le code et remplace dans Feuil1 :

Private Sub CommandButton1_Click()

'validation de la soustraction F7 - I7
'résultat à mettre dans J7
'validation de la soustraction F8 - G8
'résultat à mettre dans J8

mot = InputBox(Prompt:="mot de passe :", Title:="validation")

If mot "0000" Then Range("J7") Range("F7") - Range("I7")
If mot "0000" Then Range("J8") Range("F8") - Range("I8")

End Sub


par

Private Sub CommandButton1_Click()

mot = InputBox(Prompt:="mot de passe :", Title:="validation")

If mot "0000" Then Range("J7") Range("F7") - Range("I7")
If mot "0000" Then Range("J8") Range("F8") - Range("I8")

Sheets("Donnees").Range("N8").Value = mot 'Enregistre le mot de passe dans la feuille donnees
Sheets("Donnees").Range("N7").Value = Sheets("Encadrant").Range("N7").Value 'Enregistre N7 de la feuille encadrant dans la feuille donnees
End Sub


Ensuite rajoute juste après :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Si la cellule F16 ne contient pas un mot le mot de passe et que la feuille donnees n est pas vide,
'on annule la modification

If ((Sheets("Donnees").Range("N7").Value "") False And (Sheets("Encadrant").Range("F16").Value = Sheets("Donnees").Range("N8").Value) = False) Then Sheets("Encadrant").Range("N7").Value = Sheets("Donnees").Range("N7").Value

End Sub


Et dans ThisWorkbook met :

Private Sub Workbook_Open()
Sheets("Donnees").Visible = xlSheetVeryHidden 'Cache la feuille des données à l ouverture,
'impossible pour l utilisateur de savoir qu il existe une feuille, même dans le menu Format/Feuille

End Sub




Cordialement

Pop70
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 mai 2011 à 16:39
Bonjour,

Pour une question VBA,il fallait poster sur vbfrance dans le thème "Visual Basic 6 / Langages dérivés / VBA".

[ Déplacé sur vbfrance ]
0
Rejoignez-nous