Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment protéger les cellules en fonction de la date dans Excel?

Normalement, nous pouvons protéger la feuille de calcul pour empêcher les autres d'éditer ou de modifier les valeurs des cellules, mais, parfois, vous devez protéger les cellules en fonction de la date. Par exemple, je veux protéger les autres cellules mais ne permettre que les valeurs des cellules de la date d'aujourd'hui à modifier comme suit capture d'écran, cet article va parler de la façon de protéger les cellules en fonction de la date.

doc protéger par date 1

Protège toutes les lignes sauf la ligne de date du jour avec le code VBA

Protège toutes les lignes que la date a passé avec le code VBA

Onglet Office Activer l'édition et la navigation par onglets dans Office, et simplifiez grandement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, graphiques et autres éléments les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement.
  • Plus que le texte 20 comprend: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Fusionner les outils: Plusieurs classeurs et feuilles en un; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils Split: Fractionner les données en plusieurs feuilles en fonction de la valeur; Un classeur pour plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller Sauter Lignes cachées / filtrées; Compte et somme par couleur de fond; Envoyez des e-mails personnalisés à plusieurs destinataires en bloc.
  • Super filtre: Créez des schémas de filtrage avancés et appliquez-les à toutes les feuilles. Trier par semaine, jour, fréquence et plus; Filtre en gras, formules, commentaires ...
  • Plus que de puissantes fonctionnalités 300; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue droite bulle Protège toutes les lignes sauf la ligne de date du jour avec le code VBA

N'autorisez que la ligne dont la date d'aujourd'hui est modifiée, le code suivant peut vous aider, faites comme ceci:

1. Cliquez avec le bouton droit sur l'onglet de la feuille que vous souhaitez protéger les cellules en fonction de la date, puis choisissez Voir le code dans le menu contextuel, dans le menu contextuel Microsoft Visual Basic pour applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: Protège toutes les lignes sauf la ligne de date d'aujourd'hui:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

doc protéger par date 2

Note: Dans le code ci-dessus, la lettre E est l'en-tête de colonne où se trouve la date, "111111"Est le mot de passe pour protéger cette feuille. Vous pouvez les changer selon vos besoins.

2. Ensuite, enregistrez et fermez cette fenêtre de code.

(1.) Si vous cliquez sur d'autres cellules au-delà de la ligne de date d'aujourd'hui, une boîte de dialogue apparaîtra pour vous rappeler que la cellule ne peut pas être modifiée, voir capture d'écran:

doc protéger par date 3

(2.) Si vous cliquez et modifiez la ligne est égale à la date d'aujourd'hui, il sera modifié avec succès, voir capture d'écran:

doc protéger par date 4


flèche bleue droite bulle Protège toutes les lignes que la date a passé avec le code VBA

Si vous devez protéger toutes les lignes que la date est passée, autorisez uniquement les lignes de date actuelles et futures à être modifiées. Veuillez appliquer le code VBA suivant:

1. Cliquez avec le bouton droit sur l'onglet de la feuille que vous souhaitez protéger les cellules en fonction de la date, puis choisissez Voir le code dans le menu contextuel, dans le menu contextuel Microsoft Visual Basic pour applications fenêtre, copiez et collez le code suivant dans le module vide:

Code VBA: Protège toutes les lignes que la date a passé:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

doc protéger par date 5

Note: Dans le code ci-dessus, le nombre 5 est le numéro de colonne où se trouve la date, "111111"Est le mot de passe pour protéger cette feuille. Vous pouvez les changer selon vos besoins.

3. Ensuite, enregistrez et fermez cette fenêtre de code.

(1.) Si vous cliquez sur les cellules, la date est passée, une boîte de dialogue apparaîtra pour vous rappeler que la cellule ne peut pas être modifiée, voir capture d'écran:

doc protéger par date 6

(2.) Si vous cliquez sur la cellule des lignes pour essayer de modifier les valeurs dans la date d'aujourd'hui ou dans la date future, elle sera modifiée avec succès, voir capture d'écran:

doc protéger par date 7


Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe Créer une liste de diffusion et envoyer des emails ...
  • Super Formula Bar (éditez facilement plusieurs lignes de texte et de formule); Disposition de lecture (facilement lire et éditer un grand nombre de cellules); Coller à la gamme filtrée...
  • Fusionner les cellules / rangées / colonnes sans perdre de données; Contenu des cellules divisées; Combiner les lignes / colonnes en double... Prévenir les cellules en double; Comparer les plages...
  • Sélectionnez Dupliquer ou Unique Des rangées; Sélectionnez les lignes vierges (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux cahiers d'exercices; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de la formule; Créer automatiquement des références à plusieurs feuilles; Insérer des balles, Cases à cocher et plus ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre contenu de cellules et commentaires...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial en gras, en italique ...
  • Combinaison de classeurs et de feuilles de calcul; Fusionner les tables en fonction des colonnes clés; Fractionner les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus que de puissantes fonctionnalités 300. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit du jour 30.
kte tab 201905

Office Tab apporte une interface à onglets à Office et simplifie grandement votre travail

  • Activer l'édition par onglets et la lecture dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit le nombre de clics de souris pour vous chaque jour!
fond officetab
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    youssef · 11 days ago
    Hello, I tried to do the same but to Protect all columns except today’s date column with VBA code by replacing "Selection.Row" with "Selection.Columns" and "E" with "5" (row number where dates are), but I keep receiving error 1004!

    Any help please?

    Thank you
    • To post as a guest, your comment is unpublished.
      skyyang · 8 days ago
      Hello,
      To apply this code to columns that you need, please use the following VBA code:(Note: In the code, 5 is the row number contains the date, please change it to your need.)

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim xRg As Range
      Set xRg = Target.Worksheet.Cells(5, Target.Column)
      If xRg <> Date Then
      ActiveSheet.Protect Password:="111111"
      MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
      ElseIf xRg.Value = Date Then
      ActiveSheet.Unprotect Password:="111111"
      ActiveSheet.EnableSelection = xlNoRestrictions
      End If
      End Sub

      Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Youssef · 11 days ago
    Hello, I tried to do the same but to Protect all columns except today’s date column with VBA code by replacing "Selection.Row" with "Selection.Columns" and "E" with "5" (row number where dates are), but I keep receiving error 1004!

    Any help please?

    Thank you
  • To post as a guest, your comment is unpublished.
    Karan · 4 months ago
    Hi,

    while running this code I am getting an error as shown in the figure
    Also i am attaching a snapshot my excel where i want to make changes..

    Can u guide in my code where should i make changes according to my excel file so that cells that contain only todays & future date can be editied ???
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Karan,
      Because there are merged cells in your table, the above code can not be applied correctly in merged cells table.
      If you have any other good ideas, please comment here. Thank you!
  • To post as a guest, your comment is unpublished.
    Niall · 11 months ago
    As someone who is relatively new to VBA, would you mind explaining why xRow = 2 in Line 4?



    Thanks
    • To post as a guest, your comment is unpublished.
      Piotr · 10 months ago
      because in row no. 1 you have header
  • To post as a guest, your comment is unpublished.
    Bobby · 1 years ago
    This works great. but how can I switch it to unlock a column based on dates in row 3?
  • To post as a guest, your comment is unpublished.
    TAHER KANPURWALA · 1 years ago
    Hello.....


    I am using the code for Protect all rows except today’s date row........



    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Updateby Extendoffice 20161025
    If Range("A" & Selection.Row).Value <> Date Then
    ActiveSheet.Protect Password:="111111"
    MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
    ActiveSheet.Unprotect Password:="111111"
    ActiveSheet.EnableSelection = xlNoRestrictions
    End If
    End Sub


    After i save i and click on cell i get message only today's date row can be edited....but if i double click the cell the i can edit...pls help
  • To post as a guest, your comment is unpublished.
    LUIS GARCIA · 2 years ago
    hi is it possible to lock certain cells depending on the date that is directly above them in a column?
    • To post as a guest, your comment is unpublished.
      skyyang · 2 years ago
      Hi, Lusis,
      Can you give your problem more specifically? Or you can attach a screenshot as your problem.
      Thank you!
  • To post as a guest, your comment is unpublished.
    Lmg · 2 years ago
    Hi is it possible to lock columns by the date directly above the columns?
  • To post as a guest, your comment is unpublished.
    Hitesh · 2 years ago
    Loophole: Password can be seen by other person by using "View Code" option.