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 -
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>
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:
- EXCEL 2007: Interdire la saisie dans une zone
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
7 réponses
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
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.
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
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
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
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
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?
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
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
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
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
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
Je joint un fichier avec explications et exemple .
https://www.cjoint.com/?BFnpLVM14rL
Courtoisement