[résolu] Protection Cellule

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
slayes
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 22 avril 2007

Message par slayes » 22 avril 2007, 14:14

Bélug : Effectivement ca résoudrais le pb :) merci.
V_Elbie : Je n'ai pas trouvé de fonction qui permettait de sélectionner une cellule mais qu iempechait toute modification.

Mais je viens de trouver une tite fonction qui pourrait faire quelque d'assez propre :
Private Sub PasTouche(LaCellule As Range, PlageAutorisée As Range)
'Laurent Mortézai, mpfe

  If Intersect(LaCellule, PlageAutorisée) Is Nothing Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
  End If
End Sub
Avec un appel de cette fonction sur
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
PasTouche Target, Range("A1:A1")
End Sub

Il me reste juste une chose à voir pour quoi ca me marque une erreur "1004" ... "La méthode Undo de l'objet _Application a échoué.
V
V_Elbie
Membre impliqué
Membre impliqué
Messages : 1'519
Inscrit le : 7 avril 2007
Version d'Excel : 2003FR maison-2007FR travail

Message par V_Elbie » 22 avril 2007, 14:27

Je pense que ça dépend de la version de Excel sur laquelle tu travailles.

Dans 2003, quand tu protèges, tu peux choisir de permettre ou non de sélectionner les cellules verrouillées, il y a tout une série de cases à cocher... ce qui n'est pas le cas sur excel 2000, qui est plus limité en matière de choix de la protection
A
Amadéus
Modérateur
Modérateur
Messages : 17'763
Appréciations reçues : 76
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 22 avril 2007, 14:39

Bonjour
Une solution sans protection de la Feuille
Le Code de Feuil1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a1:b1")) Is Nothing Then Range("b1").Select
End Sub

Interdit la sélection de A1

et le code
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
     If Not Application.Intersect(Target, Range("B1")) Is Nothing Then
           If ActiveCell.Value = "" Then Application.Undo
    End If
End Sub
Interdit toute modification de B1

Fichier joint

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/do ... sseur1.xls
s
slayes
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 22 avril 2007

Message par slayes » 22 avril 2007, 15:30

impec, gros merci :) :)
E
Excelnovice
Membre fidèle
Membre fidèle
Messages : 199
Inscrit le : 21 mars 2007

Message par Excelnovice » 23 avril 2007, 19:27

Salut
Je comprends pas trop l'interet de vouloir selectionner une cellule que tu ne souhaite pas modifier?

tu peux detailler ce que tu compte en faire?
s
slayes
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 22 avril 2007

Message par slayes » 23 avril 2007, 20:09

Je travaille avec plusieurs feuilles :
- 1ere feuille : calendrier ( et je ne voulais que l'utilisateur ne puisse sélectionner que les cellule avec les valeurs 1, 2 ... 31 ... correspondant au jourd du mois
- 2eme feuille : contient quelques paramètres, et liste de menu déroulant

Sur la 1ere feuille j'ai en plus un bouton qui lancé un code VBA pour récupérer des données dans certaisn fichiers, puis met en forme et imprime.

Simplement comme ce n'est pas moi qui vais utiliser ce fichier, je préfère brider au maximum les possibilités d'erreurs.



Maintenant je rencontre un autre problème, mais je vais créer un autre sujet puisque celui-ci est résolu :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message