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 :

Verrouillage cellules après saisie


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut Verrouillage cellules après saisie
    Bonjour,

    je fais un tableau qui sera utilisé par plusieurs personnes, afin d'éviter tout effacement involontaire, j'aimerai qu'une ligne complète soit verrouillée après la saisie d'une date dans une des cellules.

    En gros, mon utilisateurs remplit l'ensemble des informations, il termine en indiquant la date de son enregistrement ce qui verrouille la ligne complète pour éviter toute nouvelle saisie dessus.

    Est-ce possible?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    On va faire plus général : si une cellule contient une formule elle n'est pas déverrouillée : (à adapter selon tes besoins)

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range) 
        Const nbcol As Long = 10 
        Dim col As Long 
        'activation protection générale 
        If Target = [A1] And [A1] = "" Then ActiveSheet.Unprotect 
        ' protection des lignes 
        If Target.Column = 1 And Target.Row > 1 Then 
            ActiveSheet.Unprotect 
            If LCase(Target) = "x" Then 
                Target.Offset(0, 1).Resize(1, nbcol).Locked = True 
            Else 
                For col = 1 To nbcol 
                    If Left(Target.Offset(0, col).Formula, 1) <> "=" Then Target.Offset(0, col).Locked = False 
                Next col 
            End If 
        End If 
        If [A1] = "x" Then ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 
    End Sub
    Testes ce code et tiens nous au courant

  3. #3
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Merci pour cette réponse.

    J'avoue mon incompétence complète à adapter ce code à ma situation. Je débute totalement et suis perdue.

    Puis-je mettre en pièce jointe le tableau pour une meilleure vision?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bien au contraire, avec un fichier joint c'est plus facile.

  5. #5
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Le voici donc en pièce jointe. je voudrais pouvoir remplir chacune de mes cellules et à partir du moment où une date est saisie dans la cellule S, la ligne est verrouillée. Possible?

    Merci beaucoup.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    au plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Unprotect
        If Range("s" & Target.Row).Text <> "" Then
            Target.EntireRow.Locked = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
    End Sub
    Il faut savoir que la protection des cellule n'est effective que si la feuille elle meme est protegée.
    J'ai donc sur ton fichier, déprotéger toutes les cellules, reproteger les lignes qui ne doivent pas etre modifié.
    Par la suite, losque je modifie la valeur de cellule S, la macro s'applique est verrouille la ligne qui vient d'être écrite.
    Je ne joint pas le fichier car je pense que @NEC vas te soigner cela au petit oignon.

  7. #7
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    c'est gentil merci. J'aime comprendre et apprendre, alors je teste ça quand même de mon côté^^

    Je viens de tester le code, c'est exactement ce que je voulais et ça fonctionne à merveille!! Merci!

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Voilà je crois avoir résolu le problème
    Fichiers attachés Fichiers attachés

  9. #9
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    La saisie d'une donnée en colonne S entraine la protection de la ligne
    Toute modification ultérieure dans une ligne ou la cellule S est rempli doit se faire en deprotegant la feuille.
    On pourrai ajouter un controle de la valeur saisi en S de façon a ce qu'il n'y est qu'une date qui puisse être saisi.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Oui tu as raison, cela pourrait être une sécurité supplémentaire.
    Je regarde ça.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Apparamenent c'est déjà le cas, cr lorsque l'on saisi autre chose qu'une date, un message apparaît.

  12. #12
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Merci à tous les deux. J'ai normalement fait apparaître un message pour imposer l'entrée d'une date postérieure au 01/01/2013.

  13. #13
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Eh bien c'est super !

    Si ton problème est résolu n'oublie pas de cliquer sur "Résolu"
    A+

  14. #14
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Arf, ça fonctionnait bien hier et là ce matin j'ai une erreur "espace pile insuffisant" qui fait tout planter. Il semblerait que ce soit dû au fait que j'ai ajouté la mise en majuscule automatique sur 2 cellules, mon code donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("F1:F1000")) Is Nothing Then Target = UCase(Target)
        If Not Intersect(Target, Range("K1:K1000")) Is Nothing Then Target = UCase(Target)
    ActiveSheet.Unprotect
        If Range("s" & Target.Row).Text <> "" Then
            Target.EntireRow.Locked = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
    End Sub
    Et si je veux ajouter une case et que je remplace "s" par "v", plus rien ne fonctionne

    En espérant ne pas abuser.

  15. #15
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Peux-tu remettre ton fichier en lien ? On y verra plus clair. Parce que je ne vois pas pourquoi ça bug.

  16. #16
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    Parfois il me demande également de saisir le code pour ôter la protection de la feuille.... je ne comprends rien.
    Fichiers attachés Fichiers attachés

  17. #17
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bon on va essayer de t'aider tout de même

  18. #18
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    je viens de le mettre. les macros prises en charge. Excel me torture

  19. #19
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Regard si cela te convient
    Fichiers attachés Fichiers attachés

  20. #20
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Par défaut
    oui effectivement ça fonctionne mais je n'ai plus la mise automatique en majuscule de mes deux cellules F et K.

Discussions similaires

  1. [XL-2003] verrouillage cellule après saisie
    Par pythfred dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/04/2012, 07h54
  2. [JTable] récupérer valeur cellule après saisie
    Par jerome71300 dans le forum Composants
    Réponses: 29
    Dernier message: 11/08/2008, 07h24
  3. verrouillage d'un champ après saisie
    Par bourguignon21 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/07/2007, 09h10
  4. Réponses: 11
    Dernier message: 17/03/2007, 20h17
  5. [VBA-E] afficher des données apres saisie dans cellule
    Par user0505 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/04/2006, 14h04

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