Verrouiller 7 cellules sur 9 si 2 sont déjà remplies
Résolu
Tomlille
-
Tomlille -
Tomlille -
Bonjour,
la demande est dans le titre !
Je cherche à verrouiller la saisie de cellules de manière conditionnelle : j'ai un choix de 2 formations dans mon entreprise à proposer sur un ensemble de 9. Je souhaite que les personnes puissent s'inscrire sur 2 de ces formations et qu'à partir du moment ou 2 cellules sont remplies, le reste soit insaisissable... j'espère être clair !
En espérant qu'il n'y ai pas un algorithme de dingue à saisir :)
Merci d'avance pour les solutions
la demande est dans le titre !
Je cherche à verrouiller la saisie de cellules de manière conditionnelle : j'ai un choix de 2 formations dans mon entreprise à proposer sur un ensemble de 9. Je souhaite que les personnes puissent s'inscrire sur 2 de ces formations et qu'à partir du moment ou 2 cellules sont remplies, le reste soit insaisissable... j'espère être clair !
En espérant qu'il n'y ai pas un algorithme de dingue à saisir :)
Merci d'avance pour les solutions
A voir également:
- Verrouiller 7 cellules sur 9 si 2 sont déjà remplies
- Photofiltre 7 - Télécharger - Retouche d'image
- Verrouiller cellules excel - Guide
- Clé windows 7 - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Delphi 7 - Télécharger - Langages
2 réponses
Bonjour,
pour votre fichier, pensez a enlever le verrouillage par defaut de cellules de saisie dans format cellule protection. Surtout mettre un mot de passe sur le VBA si c'est necessaire
fichier exemple: https://www.cjoint.com/c/EKynQ22au8f
pour votre fichier, pensez a enlever le verrouillage par defaut de cellules de saisie dans format cellule protection. Surtout mettre un mot de passe sur le VBA si c'est necessaire
fichier exemple: https://www.cjoint.com/c/EKynQ22au8f
Bonjour,
Sans vba, avec une validation de données personnalisée : =NBVAL($A$2:$A$8)<=2
https://www.cjoint.com/c/EKypxJzTr6Z
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Sans vba, avec une validation de données personnalisée : =NBVAL($A$2:$A$8)<=2
https://www.cjoint.com/c/EKypxJzTr6Z
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Bonjour eriiic,
je souhaite insérer des dates dans mes cellules, et que le paramétrage bloque à 2 cellules remplies pour la même année (exemple : une cellule avec 30/11/2015 et l'autre avec 6/04/2015. Je peux remplir une troisième cellule avec 2013 ou 2014, mais pas avec 2015...). Est-ce possible ?
Un grand merci d'avance
Thomas
je souhaite insérer des dates dans mes cellules, et que le paramétrage bloque à 2 cellules remplies pour la même année (exemple : une cellule avec 30/11/2015 et l'autre avec 6/04/2015. Je peux remplir une troisième cellule avec 2013 ou 2014, mais pas avec 2015...). Est-ce possible ?
Un grand merci d'avance
Thomas
Bonjour,
Je n'ai pas trouvé de formule simple, beaucoup trop longue...
Je te propose une macro en vba.
Alt+F11 pour voir le code dans le module Feuil1. A copier-coller dans le module de ta feuille, adapter la plage à surveiller.
https://www.cjoint.com/c/ELbr7BqspNu
eric
Je n'ai pas trouvé de formule simple, beaucoup trop longue...
Je te propose une macro en vba.
Alt+F11 pour voir le code dans le module Feuil1. A copier-coller dans le module de ta feuille, adapter la plage à surveiller.
https://www.cjoint.com/c/ELbr7BqspNu
Private Sub Worksheet_Change(ByVal Target As Range)
' interdire la saisie de plus de 2 fois la même année dans la plage pl
Const pl As String = "A2:A10" ' adapter la plage
Dim Dict As Variant, cle As String, lig As Long
Dim datas, ok As Boolean
Set Dict = CreateObject("Scripting.Dictionary")
datas = Range(pl).Value
For lig = 1 To UBound(datas)
If datas(lig, 1) <> 0 Then
cle = Year(datas(lig, 1))
If Dict.exists(cle) Then
' année connue
If Dict.Item(cle) = 2 Then
MsgBox "Année " & cle & " déjà présente 2 fois."
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Exit For
Else
' compter utilisation
Dict.Item(cle) = Dict.Item(cle) + 1
End If
Else
' nouvelle année
Dict.Item(cle) = 1
End If
End If
Next lig
End Sub
eric
Bonjour eriiic,
ça marche à merveille chez toi, par contre quand je colle et que j'adapte à ma plage, ça ne fonctionne pas... ma plage de cellules est en horizontal : est-ce que ça change quelque chose ?
En gros ma plage de sélection est de L4 à T4, et je dois adapter ensuite à la ligne L5:T5, L6:T6, etc.
Est-ce que je dois adapter quelque chose dans le VBA ?
A moins que ce ne sois juste une "validation" du VBA ? => une fois que j'ai copié-collé, je dois valider la saisie quelque part ?
Un grand grand grand merci pour ton aide !!
Cdt
Thomas
ça marche à merveille chez toi, par contre quand je colle et que j'adapte à ma plage, ça ne fonctionne pas... ma plage de cellules est en horizontal : est-ce que ça change quelque chose ?
En gros ma plage de sélection est de L4 à T4, et je dois adapter ensuite à la ligne L5:T5, L6:T6, etc.
Est-ce que je dois adapter quelque chose dans le VBA ?
A moins que ce ne sois juste une "validation" du VBA ? => une fois que j'ai copié-collé, je dois valider la saisie quelque part ?
Un grand grand grand merci pour ton aide !!
Cdt
Thomas
merci tout d'abord pour votre réponse, toutefois (je ne sais pas si ça vient de ma version d'Excel) mais ça me mets un message de débogage quand je tente de rentrer un 3ème chiffre...et si je clique sur le bouton "fin", le remplissage de la cellule s'effectue quand même. Peut-être ne suis pas assez avancé sur Excel pour utiliser ce genre d'outil ?
Merci d'avance
Cdt
un message de débogage quand je tente de rentrer un 3ème chiffre dans votre fichier avez-vous fait tout ce qui est dans le "mien"
si je clique sur le bouton "fin" y a pas de bouton fin dans "mon" fichier !!
et surtout pour vous simplifier la vie, prenez le fichier exemple de
eriiic 24 nov. 2015 à 16:24
encore un grand merci pour vos réponses, je vais effectivement prendre l'exemple d'Eriiic qui correspond totalement à ce que je recherchais.
Merci bcp
Cdt