EXCEL 2007: Interdire la saisie dans une zone

FILDAM Messages postés 14 Statut Membre -  
eriiic Messages postés 24581 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>

7 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
    1. 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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. 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
  3. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    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
    1. 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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
    1. 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
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Tu as le droit de regarder les autres propositions et d'y mettre un commentaire.
      eric
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
    3. 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
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    5. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  8. 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