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 :

verrouiller des cellules à partir de vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut verrouiller des cellules à partir de vba
    Bonjour à tous

    Débutante sur Excel et en langage VBA. Je travaille sur des mini projets afin de me former.
    Pour mon projet j'ai une plage de cellules A8:J8
    Je souhaiterai que les cellules B8 à J8 soit verrouiller et non modifiable à partir du moment ou un utilisateur entre une donnée dans A8.
    et tant que A8 est vide, les cellules B8 à J8 ne sont pas verouillé

    Je n'ai aucune idée pour la macro.

    Si quelqu'un peut me guider ...

    Sachant que toute la feuille est verrouiller par un mot de passe, et que la cellule A8 est également verrouillé par un autre mot de passe
    Les cellules qui ne sont pas verrouillés à l'ouverture du classe sont B8 C8 D8 E8 J8

    Merci pour votre aide

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Bisbis, bonjour le forum

    Citation Envoyé par Bisbis27 Voir le message
    Sachant que toute la feuille est verrouiller par un mot de passe, et que la cellule A8 est également verrouillé par un autre mot de passe.
    Les cellules qui ne sont pas verrouillés à l'ouverture du classe sont B8 C8 D8 E8 J8

    Si au départ A8 est verrouillée, je vois mal comment l'utilisateur va pouvoir l'éditer !... Impossible de créer un code correspondant a ta demande !

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

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    J'imagine que : si A8 est protégée, comme le dit Thautheme, il va falloir la déprotéger par un mot de passe qui sera par exemple demandé de manière automatique lors de l'ouverture de la feuille
    ensuite, il n'y a plus qu'a déprotéger le reste par la valeur de A8! Du moins j'imagine.
    Cordialement

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$8" Then Exit Sub 'si l'édition se fait ailleurs qu'en A8, sort de la procédure
    If Target.Value <> "" Then 'condition : si la valeur de A8 est différent de vide
        Cells.Locked = False 'déverrouille toutes les cellules
        Range(Cells(8, 2), Cells(8, 10)).Locked = True 'verrouille la cellule B8 à J8
        ActiveSheet.Protect 'protège l'onglet
    Else 'sinon
        ActiveSheet.Unprotect 'déprotège l'onglet
    End If 'fin de la condition
    End Sub

  5. #5
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    Citation Envoyé par Thautheme Voir le message
    Bonjour Bisbis, bonjour le forum



    Si au départ A8 est verrouillée, je vois mal comment l'utilisateur va pouvoir l'éditer !... Impossible de créer un code correspondant a ta demande !
    Bonjour Thautheme

    Alors en faite pour mieux explique, mes collaborateurs pourront modifier autant de fois qu'ils le souhaitent les cellules B8 C8 D8 E8 J8
    Je suis la seule personne à posséder le mot de passe de la cellule A8 et en faite à partir du moment ou je l'édite, mes collaborateurs ne pourront plus modifier les cellules B8 C8 D8 E8 J8.
    Je sais pas si tu as compris ?

    Merci
    Bisbis

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Toujours pas très clair... Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$8" Then Exit Sub
    Me.Unprotect
    Range("B8:J8").Locked = Range("A8").Value <> ""
    Me.Protect
    End Sub

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    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 : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sachant que toute la feuille est verrouiller par un mot de passe, et que la cellule A8 est également verrouillé par un autre mot de passe
    Je suis curieux de savoir comment tu as fait pour avoir deux mots de passe distincts, l'un pou la feuille et l'autre pour la cellule A8. Quelle version d'excel as-tu ?
    Ma version 2013 en tout les cas ne me le permet pas
    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

  8. #8
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    Bonjour

    La version que j'utilise est 2013
    Alors j'ai d'abord protéger ma cellule via l'onglet révision puis via permettre la modification des plages
    Puis j'ai protéger le classe via onglet protéger le classeur

  9. #9
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Et à part ça...

  10. #10
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Réponse aux choix !!! et peut être des réponses et contribution sont invisibles et/ou cachées !!!

  11. #11
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    à tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$8" Then Exit Sub 'si l'édition se fait ailleurs qu'en A8, sort de la procédure
    If Target.Value <> "" Then 'condition : si la valeur de A8 est différent de vide
        Cells.Locked = False 'déverrouille toutes les cellules
        Range(Cells(8, 2), Cells(8, 10)).Locked = True 'verrouille la cellule B8 à J8
        ActiveSheet.Protect 'protège l'onglet
    Else 'sinon
        ActiveSheet.Unprotect 'déprotège l'onglet
    End If 'fin de la condition
    End Sub
    Je vais tester de suite et je tiens au courant si ça fonctionne
    mercii

    Citation Envoyé par Thautheme Voir le message
    Bonjour le fil, bonjour le forum,

    Toujours pas très clair... Essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$8" Then Exit Sub
    Me.Unprotect
    Range("B8:J8").Locked = Range("A8").Value <> ""
    Me.Protect
    End Sub
    Coucou

    alors je vais tester de suite
    pour que tu visualises un peu mieux ce que je disais
    je te met le document excel
    Donc le mot de passe de la feuille est kb
    et le mot de passe de la cellule A8 est kbb

    Merci pour ta réponse

  12. #12
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    @BENNASR

    Nom : projet vba.png
Affichages : 2708
Taille : 24,6 Ko

    Bon voila y'a une erreur qui apparaît je vais essayer de réfléchir dessus de mon côté

  13. #13
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    @Thautheme

    Test1.xlsx

  14. #14
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    écrire n'importe quoi à A8 rond la zonne B8-J8 verrouillée
    vous pouvez remplacer la "A8" par une autre cellule en extrême droite et changer la couleur en blanc pour quelle ne soit pas visible
    Fichiers attachés Fichiers attachés

  15. #15
    Membre confirmé
    Femme Profil pro
    Dut geii Nimes
    Inscrit en
    Mars 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Dut geii Nimes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 73
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    écrire n'importe quoi à A8 rond la zonne B8-J8 verrouillée
    vous pouvez remplacer la "A8" par une autre cellule en extrême droite et changer la couleur en blanc pour quelle ne soit pas visible
    Merci super, mais du coup est ce que c'est possible d'avoir accès à la cellule A8 uniquement avec un mot de passe pour que personne d'autre n'ait accès à cette cellule

    Exemple
    je suis la seule à pouvoir modifier la cellule A8, personne d'autre n'y à accès car il faut entrer un mot de passe

Discussions similaires

  1. [XL-2002] Code VBA pour colorier des cellules à partir de plusieurs critères
    Par NoodleDS dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2013, 22h05
  2. Verrouiller des cellules dans un QTableWidget
    Par katanaenmousse dans le forum Débuter
    Réponses: 4
    Dernier message: 26/08/2010, 22h43
  3. Réponses: 6
    Dernier message: 01/05/2010, 17h39
  4. Réponses: 0
    Dernier message: 23/12/2009, 10h14
  5. verrouiller des cellules avec une formule
    Par tomy7 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/03/2008, 16h01

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