1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2016 Bloquer une cellule

Discussion dans 'Forum Excel' démarrée par fabricebaudot, 13 Septembre 2017.

  1. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Bonjour à tous,

    voilà je me suis fait un calendrier sur excel, un onglet par mois. Ce planning d'astreinte sera dispo sur un dossier partagé. Le truc c'est que les agents se placent via menu déroulant sur les semaines ou weekends selon leurs disponibilités et je voudrais que :

    - quand un nom est renseigné dans une cellule seul un "admin" pourrai modifié ce nom par un autre

    J'ai bien trouvé un code vba qui fonctionne mais à chaque fois que je fais une modif mon classeur se verrouille donc 1 modif 1 fois le code, 10 modifs 10 fois le code c'est un peu rébarbatif du coup et pas très pratique.

    voici le code en question

    Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Unprotect Password:="1234"
    Target.Locked = True
    ActiveSheet.Protect Password:="1234"
    End Sub
    sinon, à défault, Comment faire pour que quand une cellule est remplie et que je veux la modifier ça renvoie à une fenêtre "changement pas possible contacter le cadre" ?

    Merci d'avance pour votre aide précieuse pour un débutant que je suis
     
  2. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Bonsoir Fabrice,

    Ci-joint un classeur exemple répondant à ta demande.

    Dès qu'une cellule quelconque est renseignée, sa modification s'avère impossible. Toutefois, je suppose que seule les cellules contenant un nom doivent être concernées par cette action. Il faut alors cerner la plage dans laquelle se situe Target. Si tu n'y parviens pas, envoies alors une copie de ton fichier.

    Bonne soirée.

    Cordialement.
     

    Pièces jointes:

    fabricebaudot aime votre message.
  3. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    ahhh voici une bonne nouvelle ça fonctionne comme je le voulais. je le met en place sur mon calendrier demain. Par contre quand j' efface cellule par cellule pas de soucis, par contre si je sélectionne plusieurs cellules quand j'efface j' ai un message d'erreur "Erreur d'éxécution '13': Incompatibilité de type
    Quand je clic sur debogage la ligne target.Locked ... est surligné en jaune !!!
     
  4. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    RE

    Modifies la procédure comme suit:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    For Each cel In Target
    cel.Locked = IIf(cel.Value = "", False, True)
    Next
    Application.ScreenUpdating = True
    End Sub


    Cordialement.
     
  5. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    je te met en lien mon calendrier ça ne marche pas dessus par contre dans la fenêtre de VBA je vois que mes feuilles s'appel "sheet" au lieu de "feuil" c'est normale ?
     

    Pièces jointes:

  6. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    sinon juste une chose c'est parfait grand merci à toi surtout à 00h30
     
  7. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Sur mon doc j ai aussi erreur d'éxécution '1004':
    imposible de définir la propriété locked de la classe range
     
  8. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Bien reçu ton fichier, et je vois que le problème est plus complexe que dans mon exemple.

    Mais suite à quelques blocages et vu l'heure tardive, je me pencherai dessus demain soir.

    A +

    Cordialement.
     
  9. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Finalement, voici une solution que je te laisse le soin de tester. Il est en effet possible qu'il y ait quelques ajustements à prévoir.

    Les macros sont attachées au module ThisWorkbook, ce qui évite de les répéter sur chacune des feuilles.

    Cordialement.
     

    Pièces jointes:

  10. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Après test effectué ce matin, je me suis rendu compte d'un dysfonctionnement à l'ouverture du classeur.

    Ayant une journée très chargée, je m'attelle dès ce soir à trouver la faille.

    Bonne journée.

    Cordialement.
     
  11. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Pas de soucis en tout cas encore merci pour tout
     
  12. Si...

    Si... XLDnaute Barbatruc

    Inscrit depuis le :
    7 Octobre 2010
    Messages :
    2527
    "J'aime" reçus :
    375
    Bonjour

    Voici un exemple avec un seul onglet (choix du mois ajouté).

    C'est le mot code, dans If qui <> "code" Then R = Nom: [C2].Select, qui permettra ou pas de changer la valeur saisie donc le changer éventuellement.

    Bien entendu, il faudra se protéger de tout changement de code abusif. Mais, là, c'est une autre histoire ... souvent évoquée !

    Si tu veux garder toutes tes feuilles, il faudra modifier les macros en commençant par les écrire dans la fenêtre de code de ThisWorkbook avec des évènements généraux.

    edit : désolé, mauvais fichier et qui plus est trop incomplet. Voir le nouveau ci-dessous
     
    Dernière édition: 14 Septembre 2017
  13. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Merci pour ton aide là où c'est pas pratique c'est qu'il faut rentrer un code à chaque intervention sur une cellule. Il faut que l'on puisse librement mettre un nom dans une cellule vide et une fois que cette cellule vide est renseigné là il faut un code pour la modifier.

    Idéalement faudrait que je puisse par un code déverrouillé l'ensemble des mes cellules pour faire des modifs puis reverrouillé l'ensemble, mais toujours accès sans code aux cellules non renseigné.

    J'espère ne pas trop en demander. Le but est que les personnes s'inscrivent sur le planning mais les modifications ne sont accessible que par code par un "chef"
     
    Dernière édition: 14 Septembre 2017
  14. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Bonsoir Fabrice,

    Comme promis, voici une version opérationnelle de ton fichier.

    Cerise sur le gâteau, le classeur s'ouvre sur le mois en cours.

    Bonne soirée.

    Cordialement.

    PS: Salut Si...
     

    Pièces jointes:

  15. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Merci pour ton travail c'est nickel. Une seul petite chose si je peux me permettre quand je déverrouille le document et que je sélectionne ma cellule à modifier ( pour avoir accès au menu déroulant ) j'ai toujours le message " pour modif appel cadre ".

    Problème résolu en supprimant dans le VBA la ligne " pour modif appel cadre "
     
    Dernière édition: 14 Septembre 2017
  16. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    petit bug aussi en janvier il y a deux nom de renseigné, je déverrouille le doc, je sélectionne mes deux cellules pour les effacer là j'ai un message d'erreur exécution 13 incompatibilité de type et ça me rend le doc inutilisable après

    si je clique sur débug j'ai

    Target.Locked = IIf(Target.Value = "", False, True)
     
  17. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    aïe j'ai également un bug quand je rajoute un nom dans ma liste d'effectif ( onglet liste effectif )
    erreur exécution '1004' pas de cellules correspondantes du coup je ne sais pas si c'est en lien mais y a plus de protection auto quand on change d'onglet
     
  18. eriiiic

    eriiiic XLDnaute Accro

    Inscrit depuis le :
    12 Juillet 2008
    Messages :
    1835
    "J'aime" reçus :
    88
    Utilise:
    Excel 2010 (PC)
    Bonjour,

    Peut-être trop tard pour ce fichier mais ça te servira sans doute d'autres fois.
    Dans 'Révision / Modifications' tu as 'Permettre la modification des plages'.
    Tu sélectionnes la feuille entière, tu vas y mettre ton identifiant (à la 4e ou 5e étape il vaut mieux passer par Avancé... puis Rechercher) et ceux des autres administrateurs.
    Ensuite tu peux faire toutes les modifs que tu veux sans déprotéger la feuille, même sur une autre ouverture plus tard, très pratique et pas besoin de code.
    eric
     
  19. Papou-net

    Papou-net XLDnaute Barbatruc

    Inscrit depuis le :
    8 Mai 2007
    Messages :
    4784
    "J'aime" reçus :
    284
    Utilise:
    Excel 2010 (PC)
    Bonjour Fabrice,

    Voici une nouvelle version corrigeant les 3 points litigieux que tu as mentionnés.

    Je te laisse voir si la solution proposée te convient.

    Cordialement.

    PS: salut Éric
     

    Pièces jointes:

  20. fabricebaudot

    fabricebaudot XLDnaute Nouveau

    Inscrit depuis le :
    2 Janvier 2016
    Messages :
    33
    "J'aime" reçus :
    0
    Tu gères plutôt pas mal quand même. C'est tip top, juste quand je clique sur l'onglet octobre, septembre, février et janvier j'ai une l' invite pour le mot de passe et sur les autres onglets en fait j'ai l'impression que lorsque le mois est renseigné (genre 2 noms mars) quand je suis sur septembre et que je clic sur mars j'ai l'invite pour le mot de passe. Est ce normale ? Sinon tout est OK un GRAND merci pour ton aide
     

Partager cette page