Verouillage cellules en fonction de la date du jour excel 2013 [Résolu]

marcelhenri - 7 janv. 2017 à 09:03 - Dernière réponse : gbinforme 14415 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention
- 7 janv. 2017 à 22:02
Bonjour à tous,

En simplifiant, j'ai un tableau mensuel comportant 31colonnes, comme le nombre de jours dans le mois. Je souhaiterais, en VBA, en fonction de la date du jour, verrouiller les colonnes précedantes:
Ex1 : nous somme le 12 et je veux verouiller les colonnes(jours) de 1 à 10
Ex2: nous somme le 25 et je veux verouiller les colonnes(jours) de 1 à 23
Merci de votre aide.
Afficher la suite 

5 réponses

Répondre au sujet
gbinforme 14415 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 7 janv. 2017 à 10:15
0
Utile
4
Bonjour,

Comme je suppose que tu as plusieurs mois, cette macro à mettre dans Thisworkbook devrait répondre à ta demande :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim col As Long
    With ActiveSheet
        .Unprotect
        .Cells.Locked = False
        For col = 1 To Day(Date) - 1
            .Columns(col).Locked = True
        Next col
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlUnlockedCells
    End With
End Sub
marcelhenri41 2 Messages postés samedi 7 janvier 2017Date d'inscription 7 janvier 2017 Dernière intervention - 7 janv. 2017 à 21:20
Merci gbinforme pour la réponse.
Et sans vouloir abuser, si sur la colonne en question , je ne veux verouller que les lignes de 5 à 20par exemple?
gbinforme 14415 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 7 janv. 2017 à 21:37
Bonsoir,
Seule la ligne de verrouillage change :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim col As Long
    With ActiveSheet
        .Unprotect
        .Cells.Locked = False
        For col = 1 To Day(Date) - 1
            .Cells(5, col).Resize(16, 1).Locked = True
        Next col
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlUnlockedCells
    End With
End Sub
marcelhenri41 2 Messages postés samedi 7 janvier 2017Date d'inscription 7 janvier 2017 Dernière intervention > gbinforme 14415 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 7 janv. 2017 à 21:56
A grand MERCI gbinforme., tu me rends la un grand service.
gbinforme 14415 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 7 janv. 2017 à 22:02
Merci du retour et bonne fin de soirée.
Commenter la réponse de gbinforme