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 :

Bloquer des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Bloquer des cellules
    Bonjour les développeurs, je suis bloquée et je sollicite votre aide.
    Alors je voudrais savoir comment je peux bloquer la saisie dans les cellules "Détail" et "Commentaire" si la réponse est non ! Sinon si la réponse est "oui" rien ne se passe et on peut saisir dans les les cellules "Détail" et "Commentaire".
    Est ce qu'il y a moyen sans VBA sinon si le recours au VBA est plus facile, quel est le code que je peux utiliser.
    Je suis vraiment perdue. Merci pour votre interaction !!

    Nom : Capture.JPG
Affichages : 106
Taille : 21,1 Ko

  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 772
    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 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne vois pas d'autres manières qu'avec VBA de réellement protéger une cellule en fonction d'une valeur dans une autre.
    Il existe bien la fonctionnalité Validation de données qui permet de restreindre l'encodage dans une cellule suivant condition. Toutefois on n'est pas à l'abri d'une suppression pure et simple par la touche Delete et d'un copier/coller qui pourrait supprimer finalement la validation de données puisque le fait de Coller supprime les propriétés de la cellule "cible" au profit de celles de la cellule "source"
    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
    Invité
    Invité(e)
    Par défaut
    D'accord Monsieur Philippe, est ce que vous pouvez me proposer un code VBA ?
    Merci

  4. #4
    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 772
    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 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petit exemple vite fait, il peut être amélioré, avec un tableau structuré nommé t_encodage (beaucoup plus simple à gérer)
    Dans la colonne A, nommée Statut, j'utilise une valeur booléenne (VRAI ou FAUX)
    Si c'est FAUX en colonne A (dans la procédure la colonne immédiatement à gauche de la colonne Valeur et que l'on se trouve dans la colonne nommée Valeur, il y a simulation de la touche Enter

    Code de la procédure événementielle à placer dans le module de la feuille où se trouve le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim rng As Range
      Dim ColumnNumber As Integer
      Set rng = Range("t_encodage")
      ColumnNumber = rng.ListObject.ListColumns("Valeur").Index
      With Target
        If Not Intersect(rng, Target) Is Nothing Then
            If ColumnNumber = .Column Then
               If .Offset(0, -1) = False Then Application.SendKeys ("~")
            End If
        End If
      End With
    End Sub
    Illustration de la table ayant servi pour le test

    Nom : 201218 dvp Tableau forcer enter.png
Affichages : 107
Taille : 5,2 Ko
    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

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Mr Philippe,
    Merci pour votre feed-back mais je crains que le code ne marche pas pour moi !

  6. #6
    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 772
    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 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Merci pour votre feed-back mais je crains que le code ne marche pas pour moi
    C'est à dire ?
    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

  7. #7
    Invité
    Invité(e)
    Par défaut
    Le code affiche le code erreur d'exécution 91

  8. #8
    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 772
    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 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le code affiche le code erreur d'exécution 91
    A quelle ligne ?
    Avez-vous bien placé le code que j'ai publié dans le module de la feuille où se trouve le tableau
    Votre tableau se nomme t'il t_encodage et sinon, avez-vous modifié le code dans la ligne Set rng = Range("t_encodage")

    Sauf si je le signale, je teste tous les codes que je publie
    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

Discussions similaires

  1. [XL-MAC 2016] bloquer des cellules en fonctions de la date
    Par flobox dans le forum Excel
    Réponses: 1
    Dernier message: 03/04/2018, 23h33
  2. Bloquer modification manuelle des cellules sans toucher macros
    Par mia.555 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/02/2017, 15h04
  3. [XL-2013] Bloquer des cellules sous certaines conditions
    Par ElsaG dans le forum Excel
    Réponses: 8
    Dernier message: 23/04/2016, 21h41
  4. [OpenOffice][Tableur] Bloquer des cellules si condition ..
    Par fransix dans le forum OpenOffice & LibreOffice
    Réponses: 8
    Dernier message: 09/04/2013, 18h23
  5. bloquer la taille des cellules grid_rowconfigure
    Par atalon1 dans le forum Tkinter
    Réponses: 1
    Dernier message: 16/10/2007, 00h07

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