macro "bloquer" plage de cells si date < aujourd'hui

RVL

XLDnaute Occasionnel
Bonjour le forum,

Je suis tjs aussi n - - (et c'est peu dire), avec les macros et j'aimerai réaliser une macro qui au demarrage d'un fichier,

bloque une plage de cellules si la cellule R1 (date) est < à la date du jour et ce sur les onglets qui commencent par "sem".

Merci pour votre aide

Mon essai:

Private Sub Workbook_Open()
'bloquer si date en R1< date du jour

Dim wks As Worksheet

For Each wks In Worksheets

If Left(wks.Name, 3) = "sem" Then

If Range(R1).Value < Date Then


Else

Range("C4:S14").Select
Selection.Locked = True

End If

End Sub
 

Paf

XLDnaute Barbatruc
Re : macro "bloquer" plage de cells si date < aujourd'hui

bonjour

Par défaut toutes les cellules d'une feuille sont verrouillées, et pour que ce soit actif, il faut protéger la feuille.
Si on veut que seules les cellules d'une plage soient 'bloquées', il faudra alors déverrouillées toutes les autres.

A priori
Code:
Private Sub Workbook_Open()
'bloquer si date en R1< date du jour

 Dim wks As Worksheet

 For Each wks In Worksheets
      If Left(wks.Name, 3) = "sem" Then
           If wks.Range("R1").Value < Date Then
                wks.Protect
                'Range("C4:S14").Locked = True
           Else
                wks.Unprotect 
           End If
      End If
 Next

End Sub

A+
 

RVL

XLDnaute Occasionnel
Re : macro "bloquer" plage de cells si date < aujourd'hui

Bonjour Paf,

D'abord merci pour ta réponse
Mais pas d'effet avec cette macro, donc j'ai rendu actif "'Range("C4:S14").Locked = True"
Et maintenant j'ai une erreur d'execution 1004 ?
Pour info j'ai 52 onglets nommés sem1 à sem52
sur chaque onglet j'ai deverrouillé la plage (C4:S14)
Et j'aimerai bloquer (reverrouiller) ces plages si date du jour > celle affichée en "R1"

slt,
RVL
 

Paf

XLDnaute Barbatruc
Re : macro "bloquer" plage de cells si date < aujourd'hui

re,

sur chaque onglet j'ai deverrouillé la plage (C4:S14)
ben oui ..., c'estjustement ce qu'il ne fallait pas faire, puisque étant déverrouilée la protection de la feuille n'opère plus sur cette plage.
Donc cellules de la plage à remettre en verrouillé. puis utiliser le code du post #2 en désactivant la ligne
'Range("C4:S14").Locked = True


ou bien utiliser le code en maintenant active la ligne Range("C4:S14").Locked = True mais en la déplaçant avant la ligne de protection de la feuille.

A+
 

RVL

XLDnaute Occasionnel
Re : macro "bloquer" plage de cells si date < aujourd'hui

Bonjour Paf,

Effectivement...., ne comprenant que partiellement le vba j'etais resté "bloqué" sur déverrouillage de cette plage.

Merci & Désolé pour cette réponse tardive.

Slt,

RVL
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 325
Membres
103 516
dernier inscrit
René Rivoli Monin