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 une cellule quand un mot clé est saisi dans une autre [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Verrouiller une cellule quand un mot clé est saisi dans une autre
    Bonjour,

    Est-il possible dans une feuille excel de verouiller une cellule (avec ou sans mot de passe) quand on saisie un mot "toto" dans une autre cellule?

    Pour chaque cellule x qui contientdra le mot clé, une cellule y sera verouillé.
    Peut-être est-il possible alors de changer la couleur de la cellule "gris" par exemple quand elle est verouillée.

    Merci d'avance pour vos suggestions.

    Bien à vous et bonne soirée.
    Cordialement,
    Paloma



    Pensez au

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    bonjour,

    comment veux-tu que la vérification se fasse ?

    - en direct, dès que tu entres toto quelque part ?
    - à l'aide d'un bouton cliquable, qui parcourt une feuille... ?

    si tu ne donnes pas + de détails sur le contexte (qu'est ce que tu fais dans ton classeur excel, etc.), je ne pourrai pas te donner de solution précise.

    autre question : veux-tu verrouiller une cellule sur une feuille déjà protégée ? ou veux-tu verrouiller la cellule EN VUE de protéger toi meme la feuille manuellement ?

    je prends un exemple pour essayer de coller à ton probleme.


    en colonne A, 10 cellules (A1, A2 ... A10) qu'on veut verrouiller si la voisine (B1, B2 ... B10) contient le mot "toto" (sans guillemets).

    on a un bouton cliquable qui s'appelle "Scanner la colonne A". Quand on clique dessus... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    option explicit
     
    public sub VERROUILLAGE_SELECTIF()
     
    'lexique
     
    dim LIG as integer    'n° de ligne courant, dans la boucle
     
    'algo
     
     
    for LIG=1 to 10  'on va scanner les 10 cellules de la colonne A
     
        if cells(LIG,2) = "toto" then  'si la cellule en colonne B vaut toto
     
            cells(LIG,1).select   'on sélectionne la cellule en colonne A
            ActiveCell.Locked = True    'on verrouillage cette cellule
            ActiveCell.Interior.Color = vbYellow
     
        endif
     
    next
     
    end sub
    'on a parcouru les 10 cellules de la colonne A, et comparé leur contenu avec celui de la cellule voisine en colonne B
    edit2 : pas mal le coup d'inverser ligne et colonne dans le cells(), normal que ca marchait pas^^
    La le programme marche bien, si tu veux choisir une couleur perso remplace .color par .colorindex et au lieu de mettre vbyellow, tu metteras un nombre, dont le n° correspond à une couleur.
    Voir ici pour les code-couleur :
    http://www.mvps.org/dmcritchie/excel/colors.htm

    pour le gris clair, c'est .colorindex = 15

  3. #3
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Paloma barbare_tf le forum un exemple avec une evenementielle
    si cell b1=toto on peut pas sélectionner cell a1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1,b1")) Is Nothing Then
    If [b1] = "toto" Then [a1].Interior.ColorIndex = 3 Else [a1].Interior.ColorIndex = xlNone
    If Target.Address = "$A$1" And [b1] = "toto" Then Target.Offset(1, 0).Select
    End If
    End Sub
    SALUTATIONS

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    bonjour!

    Citation Envoyé par laetitia Voir le message
    si cell b1=toto on peut pas sélectionner cell a1

    c'est en référence à mon code ? je ne comprends pas...

  5. #5
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    Tout d'abord merci à vous deux.

    Je vais déjà essayer avec ce que vous m'avez donné.

    Le but étant, pour une cellule A1 de l'onglet Sheet1 si la cellule B2 contient le mot (on saisi ce mot au clavier) "toto", la cellule A1 n'est plus utilisable/modifiable. Si on supprime le contenu de la cellule B2 la cellule A1 est de nouveau modifiable.

    Je test ça et je vous tiendrai informé.

    Bonne soirée.
    Cordialement,
    Paloma



    Pensez au

  6. #6
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    Bon j'ai essayé le code mais les cellules ne sont pas verrouillé.

    Pouvez-vous m'aider?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Option Explicit
    Sub Bouton1_Clic()
     
    'lexique
     
    Dim LIG As Integer    'n° de ligne courant, dans la boucle
     
    'algo
     
    LIG = 1
     
    For LIG = 1 To 5000 'on va scanner les 5000 cellules de la colonne A
     
        If Cells(LIG, 2) = "toto" Then 'si la cellule en colonne B vaut toto
     
            Cells(LIG, 1).Select  'on sélectionne la cellule en colonne A
            ActiveCell.Interior.Color = vbYellow
            ActiveCell.Locked = True    'on verrouillage cette cellule
     
     
        End If
     
    Next
     
    End Sub
    'on a parcouru les 5000 cellules de la colonne A, et comparé leur contenu avec celui de la cellule voisine en colonne B
    Vous trouverez le fichier xls dans ce message.

    Merci d'avanc et Bonne soirée à tout le monde !!!!
    Fichiers attachés Fichiers attachés
    Cordialement,
    Paloma



    Pensez au

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    1- selectionnes toute ta feuille
    2- dans format protection, décoches verrouiller les cellules, ensuite voilà ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Bouton1_Clic()
     
    'lexique
     
    Dim LIG As Integer    'n° de ligne courant, dans la boucle
    ActiveSheet.Unprotect
     
    'algo
     
    LIG = 1
     
    For LIG = 1 To 5000 'on va scanner les 5000 cellules de la colonne A
     
        If Cells(LIG, 2) = "toto" Then 'si la cellule en colonne B vaut toto
     
            Cells(LIG, 1).Select  'on sélectionne la cellule en colonne A
            ActiveCell.Interior.Color = vbYellow
            ActiveCell.Locked = True    'on verrouillage cette cellule
     
     
        End If
     
    Next
        ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False
     
    End Sub
    'on a parcouru les 5000 cellules de la colonne A, et comparé leur contenu avec celui de la cellule voisine en colonne B
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre régulier Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Points : 79
    Points
    79
    Par défaut Remerciements
    Bonjour et merci.

    Désolé pour ce retard mais je n'ai pas pu me connecter depuis un bon long moment.

    Merci casefayere, merci barbare_tf merci laetitia ça fonctionne à merveille.


    Bonne journée à vous tous !
    Cordialement,
    Paloma



    Pensez au

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2014, 21h26
  2. Réponses: 3
    Dernier message: 12/09/2013, 11h27
  3. [XL-2007] Si une cellule contient le mot x, copierla ligne vers une autre sheet
    Par themansion dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2013, 09h13
  4. [XL-2007] ouverture d'un formulaire lorsqu'un mot précis est sélectionné dans une liste
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 127
    Dernier message: 22/06/2012, 15h40
  5. [XL-2007] Suppression fichier dont le nom est à récupérer dans une cellule
    Par 2lester dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2012, 18h26

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