IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Excel Verrouiller ou déverrouiller une ligne en fonction d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Excel Verrouiller ou déverrouiller une ligne en fonction d'une cellule
    Bonjour a Tous,

    je souhaiterai Verrouiller ou déverrouiller une ligne en fonction de la valeur d'une cellule (colonne F) dans cette même ligne. ce ficher est utilisé par deux personnes la premier (P1) saisie les données et la seconde (P2) valide ou non en indiquant "Approuvé " ou "Non approuvé" au niveau de la colonne F parmi 3 choix (liste déroulante) "En instance" (par défaut), " Non approuvé" et Approuvé" .
    Si (P2) indique "Approuvé" la ligne est verrouiller et P1 ne peut plus modifier une donnée au niveau la ligne "approuvé"
    Si (P2) indique "Non approuvé" la ligne reste déverrouiller et si P1 modifie une donnée au niveau la ligne "Non approuvé" la colonne la cellule située au niveau de la colonne "F" redevient "En instance".
    Bien évidement uniquement P2 peut modifier la colonne F.


    Merci d'avance pour vos réponses
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il n'y a aucune raison de déposer un fichier que beaucoup de contributeurs dont je fais partie n'ouvriront.
    La question est simple.
    Tu souhaites que la ligne où se trouve une cellule contenant une valeur "Approuvé" ou "Non approuvé" soit verrouillée ou pas suivant cette valeur.
    La question qu'il faut se poser est comment peut on le faire manuellement.
    Une cellule n'est réellement verrouillée qu'à la seule condition que la feuille soit protégée.
    Donc cela implique que l'on modifie la propriété Locked de l'ensemble des cellules de la ligne concernée et que l'on protège ensuite la feuille par la méthode Protect (pour protéger et Unprotect pour déprotéger
    Maintenant une fois cette feuille protégée comment fera t'on pour sélectionner à nouveau la cellule contenant la valeur "Approuvé" ?
    Soit un MsgBox ou un formulaire UserForm qui s'affiche et demande un mot de passe que seule la personne qui est autorisée à modifier la valeur de la cellule le peut

    Question : As-tu pensé à cette problématique ?

    Les lignes font-elle parties d'un tableau structuré ou d'une plage classique ?
    Est on sensé ajouter des lignes ou pas ?

    Cela fait beaucoup de réponses pour une seule question
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, je me permet de rajouter à l'intervention de @Philippe Tulliez(que je salue) ceci:
    La cellule du triple choix devra déjà être protégée par un mot de passe connu de la seule personne habilitée au choix. Sinon??????
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Pour Philippe
    Bonjour,

    Je te remercie pour ta réponse.
    Le fichier est la pour aider les personnes qui souhaitent mieux comprendre ma problématique.
    Oui cela ne pose pas de problème si la feuille est protégées, mais dans ce cas il faut que P1 puisse rajouter de nouvelles lignes via les formulaires (userform) déjà créés. (voir fichier). En résumer il faudra deux MsgBox ou seux formulaires UserForm, l'un apparaîtra pour P1 lorsqu'il voudra rajouter une nouvelle ligne et l'autre a P2 lorsqu'il voudra approuvé ou non.
    Le dernier point que j'ai déjà évoqué il faudrait que dans le cas ou P2 n'approuve pas les données de la ligne ( donc la ligne reste accessible pour P1) et une fois que P1 apporte les modifs nécessaires la cellule de validation ("Approuvé", "Non approuvé", "En instance") redevienne automatiquement à la valeur "En instance".

    Merci

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Réponse à Transitoire
    Bonjour,

    Sinon P1 pourra s'auto-contrôler et approuver les données et si une erreur apparaît plus tard la personne P2 pourra se désengager de toutes responsabilités étant donnée qu'elle n'est pas le seul à approuver.

  6. #6
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, question.
    Comment le programme saura-t-il qu'il a P1 ou P2?????
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Réponse à Transitoire
    Rebonjour,

    Plusieurs pistes :
    1/ un mot de passe pour P1 qui lui autorise uniquement à entrer une nouvelle ligne ou a modifier les lignes avec les statuts "En instance et Non approuvé" sans pouvoir modifier la colonne statut (Colonne F)
    un mot de passe pour P2 qui lui autorise à modifier la valeur de la colonne de statut (P2 pourrai ou non modifier les autres cellules cela ne pose pas de problème )
    2/ P1 accès libre à toutes les lignes qui ne son pas "Approuvé" et possibilité d'ajouter des lignes
    un mot de passe pour P2 qui lui autorise à modifier la colonne F mais si il choisi la valeur "Approuvé" le reste de la ligne ne doit plus être modifiable par P1

    Merci d'avance pour le temps que vous consacrez à mon problème.

  8. #8
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, je ne peut pas ouvrir votre document, étant sur Mac je n'ai pas accès aux éléments ActiveX. par contre, j'opterais pour le choix ci-dessous:
    2/ P1 accès libre à toutes les lignes qui ne son pas "Approuvé" et possibilité d'ajouter des lignes
    un mot de passe pour P2 qui lui autorise à modifier la colonne F mais si il choisi la valeur "Approuvé" le reste de la ligne ne doit plus être modifiable par P1

    Il vous faut toutefois savoir que les protections sur Excel seraient d'une piètre efficacité. et aisément contournables

    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  9. #9
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Votre fichier est protégé par mot de passe, donc inutilisable.

    Esquisse de la solution VBA (simple schéma de spécifications fonctionnelles):
    • Définir les cellules protégées et non protégées
    • Protéger la feuille par mot de passe
    • Si Fn = "Approuvé" , protéger la ligne
    • Si Fn = "Non approuvé", libérer la ligne
    • Si Fn = "Non approuvé" + changement sur la même ligne, mettre Fn = "En instance"
    • Col F modifiable uniquement par P2 (P1 ne peut pas modifier la col F)

Discussions similaires

  1. [XL-2010] Sélection d'une plage ou lignes en fonction de la cellule active
    Par HERMY dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/09/2018, 12h02
  2. [POI][Excel] Différents styles dans une cellule
    Par ALEX731 dans le forum Documents
    Réponses: 1
    Dernier message: 07/03/2008, 11h16
  3. [OLE] Excel : Ajouter un commentaire à une cellule
    Par Vertyos dans le forum Delphi
    Réponses: 5
    Dernier message: 09/11/2006, 19h26
  4. [Vba-Excel] Récupérer événement sur une cellule
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2006, 20h27
  5. Réponses: 5
    Dernier message: 29/09/2005, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo