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 :

Comment détecter une tentative de saisie dans une cellule verrouillée ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut Comment détecter une tentative de saisie dans une cellule verrouillée ?
    Bonjour à tous,

    Je post ici car je pense que ce que je cherche ne peut se faire qu'en VB (si c'est possible bien sûr) mais une solution sans VB me conviendrai parfaitement.

    Tout est dans le titre mais je vais détailler ma problématique :
    J'ai dans un classeur utilisé par plusieurs collaborateurs une feuille protégée sur quelques colonnes.
    La saisie d'une des colonnes verrouillée se fait via un UserForm à l'aide d'un gros bouton juste au-dessus de la ligne d'en-tête.

    Jusqu'ici aucuns soucis ! Mais il arrive ... C’est l’utilisateur qui ouvre le fichier
    Le fameux bouton n'est pas assez gros et il ne le voit pas (les volets sont figés donc le bouton est toujours visible).
    Même avec des flèches, des voyants, ... je crois que les utilisateurs sont fait pour ignorer les boutons
    Alors ils cliquent dans la cellule et ... ça marche pas

    En résumé et plus sérieusement j'aimerais savoir s'il est possible d'intercepter le message par défaut d'Excel lors d'une tentative de saisie dans une cellule verrouillée.
    Cela me permettrais d'afficher à la place ou en plus du message d'Excel, un message lui demandant d'utiliser le bouton.

    J'espère être clair.
    Merci d'avance et bonne journée à tous

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour antonysansh,

    Sur ton Worksheet_activate, tu envoies un MsgBox pour dire à l'utilisateur de cliquer sur ton bouton, et le tour est joué, non ?

    Cordialement,
    Kimy

  3. #3
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour Kimy_Ire,

    Merci pour ton intérêt.

    Il s'agit d'une seule colonne de ma feuille en réalité.
    Je ne veux pas mettre de contrôle dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet_SelectionChange
    car l'utilisateur peut activer la cellule sans qu'il n'ait besoin d'en modifier le contenue.

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 Then
     
     Cancel = True
     MsgBox "Veuillez utiliser le bouton"
     
    End If
    End Sub

  5. #5
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Merci Docmarti pour ta réponse.

    J'avais déjà ce bout de code et en fait il ne me satisfait par totalement car peu d'utilisateur utilise le DoubleClick pour une saisie, souvent ils ne font que sélectionner la cellule et utilise le clavier.

    Au passage savez-vous s'il existe un évènement "Quand j'entre dans une cellule" qui se déclencherais sur un DoubleClick ou sur une frappe clavier ? (Un peu ce que fait Excel lui-même lorsqu'on utilise F2)

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par antonysansh Voir le message
    Merci Docmarti pour ta réponse.

    J'avais déjà ce bout de code et en fait il ne me satisfait par totalement car peu d'utilisateur utilise le DoubleClick pour une saisie, souvent ils ne font que sélectionner la cellule et utilise le clavier.
    Voici une façon de contourner le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Column = 1 Then
      UserForm1.Show vbModeless
     Else
      UserForm1.Hide
     End If
    End Sub
    Citation Envoyé par antonysansh Voir le message
    Au passage savez-vous s'il existe un évènement "Quand j'entre dans une cellule" qui se déclencherais sur un DoubleClick ou sur une frappe clavier ? (Un peu ce que fait Excel lui-même lorsqu'on utilise F2)
    Bien c'est l'événement Worksheet_BeforeRightClick. Ça ressemble beaucoup à F2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
    End Sub

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Bonjour,

    lors de la protection d'une feuille de calculs, il est possible de paramétrer de ne pas pouvoir sélectionner les cellules verrouillées …



    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, …

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    autre idée : abandonner la protection de la feuille.
    Dès qu'un utilisateur modifie une cellule des colonnes protégées (Change) tu fais tout de suite un Application.Undo pour annuler sa modif (avec message informatif, c'est mieux).
    Et sur la colonne voulue tu affiches le UserForm (ou bien tu lui dis de cliquer le bouton. Mais bon, tu peux même t'en passer en faisant comme ça).
    eric

  9. #9
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour à tous,

    J'ai peut être mal exprimé ma problématique.

    En fait dans ma feuille il y a 3 types de colonnes :
    • Des colonnes complètements libres
      L'utilisateur peut y faire ce qu'il veut.
    • Des colonnes qui sont remplies par l'utilisation d'un UF
      Ces colonnes ne peuvent être renseigné que par l'UF donc le message d'Excel n'est pas dérangeant car après saisie les données sont figées.
    • Une colonne gérée par un deuxième UF
      Cette dernière et unique colonne concerne en fait un champ commentaire. L'UF sert à « historiser » les différents commentaires, insérer le nom de l'utilisateur et la date. L'utilisateur doit pouvoir modifier et sélectionner cette colonne mais les modifications se font via l’UF.


    J'espérai qu'il soit possible d'intercepter le message pour le remplacer par une action définie. Dommage

    Merci à tous pour vos réponses !!!
    La solution d'eriiic pourra faire l'affaire.

    Bonne journée

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/09/2015, 18h26
  2. comment interpreter les balises html saisies dans une zone de texte
    Par programmatrice dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/04/2012, 16h04
  3. Réponses: 2
    Dernier message: 25/11/2011, 23h29
  4. Réponses: 1
    Dernier message: 26/12/2010, 22h20
  5. Réponses: 11
    Dernier message: 17/03/2007, 21h17

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