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 cellule après sasie


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Verrouiller cellule après sasie
    Bonjour,

    J'ai deux colonnes date et nom:

    Quand l'utilisateur complète la colonne nom et passe à la suivante la colonnes date se complète automatiquement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not Intersect(Target, [B:B]) Is Nothing Then
        Target(1, 0) = Now
    end if
    Je voudrais verrouiller la cellule date après sa saisie (pas la colonne complète sinon l'utilisateur ne pourra plus compéter par la suite)

    Auriez vous une idée ?

    D'avance merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Ok j'ai trouvé via

    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
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Dim PWD As String
        Dim Feuille As String
     
        PWD = "azerty"
        Feuille = "Feuil1"
     
        With Worksheets(Feuille)
            .EnableAutoFilter = True
            .Protect PWD, True, True, True, True
        End With
    End Sub
     
    Private Sub Workbook_Open()
        Dim PWD As String
        Dim Feuille As String
     
        PWD = "azerty"
        Feuille = "Feuil1"
     
        With Worksheets(Feuille)
            .EnableAutoFilter = True
            .Protect PWD, True, True, True, True
        End With
    End Sub
    Maintenant je voudrais exécuter mon code de mon évènement:

    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 Not Intersect(Target, [B:B]) Is Nothing Then
            Target(1, 0) = Now
        End If
    End Sub
    Que si la cellule B? est vide

  3. #3
    Invité
    Invité(e)
    Par défaut Bonsoir,
    il faut au préalable que les cellules soient déverrouillées si non tu ne pourras plus écrire dans la feuille!
    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 Not Intersect(Target, [B:B]) Is Nothing And Target.Offset(0, -1).Locked = fals Then
        Application.EnableEvents = False
        Target.Offset(0, -1) = Now
        ActiveSheet.Unprotect Password:="123456789"
         Target.Offset(0, -1).Locked = True
         ActiveSheet.Protect Password:="123456789"
         Application.EnableEvents = True
     End If
    End Sub

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

    Informations professionnelles :
    Activité : salarié

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

    En déverrouillant la colonne B, j'aurais plutôt écris comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [B:B]) Is Nothing Then
        ActiveSheet.Unprotect Password:="123456789"
        Target.Offset(0, -1) = Now
        Target.Offset(0, -1).Locked = True
        ActiveSheet.Protect Password:="123456789"
    End If
    End Sub

Discussions similaires

  1. séparer les cellules apres split&merge
    Par Darkcristal dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 09/07/2007, 16h54
  2. [VBA-E]-Verrouiller cellules
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/04/2007, 13h53
  3. [VBA-E] - Selection automatique Cellules apres des tris
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2007, 10h21
  4. [XSL-FO]Repetition de cellule apres rupture de page
    Par OtterPowa dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 02/04/2007, 14h40
  5. Verrouiller cellule contenant des formules
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/12/2005, 11h47

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