EXCEL 2007: Interdire la saisie dans une zone
Fermé
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
-
13 juin 2012 à 12:19
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 14 juin 2012 à 13:23
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 14 juin 2012 à 13:23
A voir également:
- EXCEL 2007: Interdire la saisie dans une zone
- Liste déroulante excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
7 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
13 juin 2012 à 12:24
13 juin 2012 à 12:24
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
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
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 13/06/2012 à 15:29
Modifié par Mike-31 le 13/06/2012 à 15:29
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.
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.
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
13 juin 2012 à 15:54
13 juin 2012 à 15:54
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
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
Raymond PENTIER
Messages postés
58801
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 janvier 2025
17 264
13 juin 2012 à 16:10
13 juin 2012 à 16:10
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
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
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
13 juin 2012 à 16:40
13 juin 2012 à 16:40
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
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
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 13/06/2012 à 17:02
Modifié par Mike-31 le 13/06/2012 à 17:02
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
Modifié par Vaucluse le 13/06/2012 à 17:05
Modifié par Vaucluse le 13/06/2012 à 17:05
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?
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?
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
14 juin 2012 à 10:10
14 juin 2012 à 10:10
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
14 juin 2012 à 10:15
14 juin 2012 à 10:15
Tu as le droit de regarder les autres propositions et d'y mettre un commentaire.
eric
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
14 juin 2012 à 10:18
14 juin 2012 à 10:18
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
14 juin 2012 à 01:28
14 juin 2012 à 01:28
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 14/06/2012 à 10:30
Modifié par eriiic le 14/06/2012 à 10:30
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
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
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
14 juin 2012 à 10:43
14 juin 2012 à 10:43
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
voir ici:
https://www.cjoint.com/?BFokQMBftJW
crdlmnt
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
14 juin 2012 à 10:58
14 juin 2012 à 10:58
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
CDT
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
14 juin 2012 à 11:53
14 juin 2012 à 11:53
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
@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
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
Modifié par Vaucluse le 14/06/2012 à 12:07
Modifié par Vaucluse le 14/06/2012 à 12:07
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
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
FILDAM
Messages postés
14
Date d'inscription
mercredi 13 juin 2012
Statut
Membre
Dernière intervention
21 juin 2013
14 juin 2012 à 12:17
14 juin 2012 à 12:17
Je viens de tester et ca marche tres bien . Merci a tous . Si je peux vous etre utile un jour .
Bonne journée
Bonne journée
13 juin 2012 à 15:40
Je joint un fichier avec explications et exemple .
https://www.cjoint.com/?BFnpLVM14rL
Courtoisement