EXCEL 2007: Interdire la saisie dans une zone

FILDAM Messages postés 14 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous ,

Voici mon prob , Comment interdire la saisie dans une zone, lorsqu'une seule cellule est deja remplie, que ce soit du numerique ou de l'alpha . La selection se fait à la journée et par user
Je joint un fichier pour etre plus comprehensif .

https://www.cjoint.com/?BFmo6H7GrCQ

Un grand merci à tous de votre aide
Courtoisement
PHD
>Windows XP / Internet Explorer 7.0</config>
A voir également:

7 réponses

Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
Bob jour
pas sur d'avoir tout compris, mais par exemple pour la zone K4:K8 de votre modèle:
Données / validation / personnalisé et la formule:
=NB.SI(K4:K8;">0")<2
qui interdira de rentrer plus de une valeur num dans le champ.
crdlmnt
0
FILDAM Messages postés 14 Statut Membre
 
Merci pour votre réponse mais ce n'est pas ce que je desirais .
Je joint un fichier avec explications et exemple .

https://www.cjoint.com/?BFnpLVM14rL

Courtoisement
0
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
Salut,

Tu dis que la saisie ce fait par user, je ne vois pas d'userform dans ton fichier
colle ce code dans les propriétés de ta feuille (clic droit/visualiser le code)
ce code surveillera la plage J4 à N18.
Il est possible d'ajouter un mot de passe dans la protection de la feuille pour accentuer la protection

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:D15")) Is Nothing Then
ActiveSheet.Unprotect Password:="titi"
If Target <> "" Then Target.Locked = True
ActiveSheet.Protect Password:="titi"
ActiveSheet.EnableSelection = xlUnlockedCells
End If
End Sub

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
FILDAM Messages postés 14 Statut Membre
 
Bonjour ,
Merci a vous aussi , mais ce code me bloque toute entrée dans la zone definie.
Lorsque je disais User, cela veut dire le nom d'une personne en colone A ( Ici c'est ADE ) et non pas Userforme.
Je joint un fichier avec explications de ce que je desirais
https://www.cjoint.com/?BFnpLVM14rL

Merci de votre aide
Courtoisement
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
Bonjour.

Une méthode un peu longue à paramétrer mais qui marche parfaitement :
* 1) Donner à chaque plage de 5 cellules un nom (ainsi J4:J8 sera nommée ADE_0207, R9:R13 sera nommée CCE_1007 ...).
* 2) Dans chacune de ces 66 plages nommées mettre un critère personnalisé de validation de données avec la formule SOMME(ADE_0207)=0 pour la première.
=> Tu n'as pas dit comment il fallait traiter les cas d'absence ...
https://www.cjoint.com/?BFnqjj46fID
0
FILDAM Messages postés 14 Statut Membre
 
Bonjour et Merci pour votre réponse mais ce n'est pas ce que je desirais .
Je joint un fichier avec explications et exemple .

Pour info ,ce fichier n'est qu'un exemple , l'original est plus de 10 fois plus grand et devrait au fil des jours s'agrandir ..
Donc par la methode que vous me preconisez cela va etre trés long à parametrer .

https://www.cjoint.com/?BFnpLVM14rL

Merci de votre aide

Courtoisement
0
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
Re,

Oui exact, réponse trop rapide par manque de temps, au préalable sélectionne ta plage clic droit sur la sélection/Format de cellule/onglet Protection décoche Verrouillée

colle mon code comme expliqué

teste ton fichier sur la plage J4:N18, si c'est ce que tu cherches, on complétera le code

https://www.cjoint.com/?BFnrbJqOXV7

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
Re
essayez dans cette copie de votre fichier de mettre deux "1" dans la même colonne:
https://www.cjoint.com/?BFnrcfUPia8
paramétrage comme vous dites:
il suffit de sélectionner tous le champ) existant ou a venir et d'entrer la formule de validation avec les signes $ aux bons endroits, (en entrant la formule correspondant à la 1° colonne sélectionnée)
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
FILDAM Messages postés 14 Statut Membre
 
Hello ,

Merci encore de votre aide , cela fonctionne avec le chiffre 1 mais pas avec ABS .
Je vous joint un fichier pour exemple.

https://www.cjoint.com/?BFokiSos0P7

Bonne journée
Courtoisement
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Tu as le droit de regarder les autres propositions et d'y mettre un commentaire.
eric
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
Bonjour
oui j'avais mangé la consigne du multicode :-(
replacer la validation depuis colonne J avec la formule:
=NB.SI(J$4:J$8;"<>")<2
ça devrait fonctionner quoique vous mettiez en second dans une colonne
crdlmnt
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir tout le monde,

Allez, encore une proposition....

Sélectionner J4:AM8, validation de donnée avec :
Personnalisée
La formule est: =((J4=1)+(J4="ABS"))*(NBVAL(DECALER($J$4;;COLONNE()-10;5;1))<=1)
https://www.cjoint.com/?BFobCpi7H6n

eric
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Re,

Je me suis un peu compliqué la vie sur une partie de la formule.
En copiant honteusement sur vaucluse voilà la compil remixée pour la MFC :
=((J4=1)+(J4="ABS"))*(NBVAL(J$4:J$8)<=1)
(vaucluse : tu autorises toute saisie de chaine...)

eric
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
Peux tu préciser ce que tu vois comme problème Eric? ça m'échappe? Quand je rentre n'importe quoi dans une cellule, je ne peux pas rentrer une seconde valeur dans la même colonne, quelle qu'elle soit.
voir ici:
https://www.cjoint.com/?BFokQMBftJW
crdlmnt
0
FILDAM Messages postés 14 Statut Membre
 
GRAND MERCI Cela fonctionne tres bien, mais petite question , faut il valider chaque zone ? N'y a t'il pas moyen de le faire sur toute la feuille car j'ai pas mal d'utilisateurs a rajouter

CDT
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Re,

@vaucluse : sur ton fichier, saisis "ABS" ou "toto" sur une cellule vide d'une date déjà réservée, ça passe.
Je n'ai pas testé ton post de 10h30...

@fildam
Ben non, tu ne peux pas, il faut bien compter les saisies individuellement par plage.
Mais avec l'outil pinceau ça se fait facilement.
Sélectionner ta 1ère cellule de MFC, cliquer sur le pinceau, sélectionner la nouvelle plage et tous les formats, y compris la MFC sont recopiés.

eric
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
Ah.... j'ai compris, et je savais, mais je me suis tenu au fait qu'on ne pouvait pas placer plus de une valeur par colonne sans préciser les valeurs, en supposant que l'utilisateur sait ce qu'il doit mettre!!

Quant à l'application sur tout le tableau, pas tout à fait d'accord avec toi Eric
tu sélectionne tous le champ,, sur la hauteur utile et sur la longueur idem
tu rentres la formule qui correspond à la 1° colonne du champ en bloquant les lignes et ça s'applique d'un seul coup en s'ajustant sur chaque colonne
donc par exemple pour un champ de J4 à X100
=NB.SI(J$4:J$100;"<>")<2
avec les $devant les N° de ligne seulement
et ça va aller sur chaque colonne de J à X pour un champ de 4 à 100
c'est du moins comme ça que j'ai fait et ça fonctionne
crdlmnt
0
FILDAM Messages postés 14 Statut Membre
 
Je viens de tester et ca marche tres bien . Merci a tous . Si je peux vous etre utile un jour .

Bonne journée
0