protection a chaque saisie

N

nono

Guest
Bonjour a tous
je commence a m'habituer a ce site car vous resolvez pas mal de mes problémes, D'ailleur j'en ai un nouveau:
je cherche a proteger une ligne de cellules des que je passe a la ligne suivante.
exemple A B C
1 xx yy zz
2

en fait j'ai plusieurs personnes qui se servent de la meme feuille et qui y effectue des saisies. donc j'aimerais que losque une ligne de saisie est terminée(A1:C1) et que l'on passe a la ligne suivante , la premiere ligne(A1:C1) soit proteger automatiquement pour que celui qui saisie la deuxieme ligne ne puisse faire de modif sur la premiere ligne.
J'espere avoir été clair dans mes explication .
Je vous remercie par avance de votre aide car je n'ai pas trouver d'exemple sur le forum.
 
J

JCA06

Guest
Bonjour nono, le Forum,

Voici une idée :
- ta feuille est protégée par défaut sauf les colonnes ABC à partir de la ligne que tu souhaites ;
- tu lances une macro de validation à l'aide d'un bouton ou d'un raccourci clavier qui fonctionne de la façon suivante :
- désactivation de la protection ;
- repérage de la dernière ligne remplie ;
- modification du format pour remettre la consigne de protection ;
- réactivation de la protection.

Voila ce que cela donne :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/09/2004 par JCA

'Dim L As Long ' Variable correspondant au numéro de ligne à traiter
'
ActiveSheet.Unprotect
L = Range("A65536").End(xlUp).Row
Range("A" & L & ":C" & L).Select
Selection.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("A" & L + 1).Select
End Sub
 
J

Jean-Marie

Guest
Bonjour

Une autre solution tirée par les cheveux, en utilisant les fonctionnalité des données de validation d'Excel

1) Sélectionner la plage A1:CXXX (en commençant par la cellule A1 en premier, ce sera la cellule active de la sélection).
2) clique sur le menu Données/Validation...
3) dans la boîte de dialogue, dans le choix "autoriser" indique "personnalisé
4) dans le champ données, tu indiques cette formule (attention au $, il sont importants)
=estvide($A2:$C2)
5) valide

Cela permet simplement de ne pas ressaisir dans une cellule, toutes les fonctionnalités d'effacement de cellules (touche sup, menu Edition/Effacer...) reste utilisables, les fonctionnalités de personnalisation de cellules aussi.

@+Jean-Marie
 
M

Marc

Guest
Bonjour,
Et grand merci à tous pour votre aide. Je n'ai pas repris textuellement une des solutions, mais l'ensemble m'a inspiré une solution sur mesure. La bonne idée (JCA06) était d'utiliser un bouton pour démarrer une macro, le reste est venu (presque) tout seul !
A+
Marc.
 

Discussions similaires

Réponses
16
Affichages
473
Réponses
4
Affichages
291

Statistiques des forums

Discussions
312 198
Messages
2 086 114
Membres
103 121
dernier inscrit
SophieS