Excel - Rendre une feuille active entre deux dates

Bonjour,

Je travaille actuellement sur un projet me demandant d'utiliser Excel, pour faciliter la saisie des données par les utilisateurs j'aurais besoin que ceux-ci ne puissent saisir des données que pendant des intervalles limités. Des intervalles d'heures mais également de dates

Je ne suis pas un expert en VBA mais j'ai déja réussi à m'arranger pour les intervalles d'heures ( If Time >= "08" And Time < "08:30:00" Then...)
Je me demandais comment je pouvais faire la même chose avec des dates pour rendre inactive la feuille.

Si je devais schématiser je cherche ceci :

IF date est entre 1aout et le 07aout THEN on désactive la feuille.

Cependant je ne connais pas la fonction me permettant de mentionner des dates, ni celle permettant de rendre inactive la saisie dans une feuille(je pense pouvoir trouver mais les dates je n'y parviens pas)

Quelqu'un pourrait m'indiquer vers ou chercher ? Ou simplement comment sélectionner une date.

En vous remerciant par avance, a vot bon coeur !

2 réponses

  1. Modérateur
    Bonjour,

    Exemple :
    placer ce code dans le Module ThisWorkbook :
    Private Sub Workbook_Open()
    If Date > CDate("07/08/2014") And Date < CDate("09/08/2014") Then Sheets("Feuil4").Visible = xlVeryHidden Else Sheets("Feuil4").Visible = True
    End Sub 


    Date
    = date du jour
    CDate()
    : transforme le paramètre donné en une date
    .Visible 
    : propriété d'affichage de la feuille
    xlVeryHidden
    : masque la feuille concernée sans même pouvoir la retrouver dans le menu "Afficher" des feuilles...
    1
    1. Franchement, merci beaucoup

      J'ai cependant une question : les données de la feuille cachée peuvent elles être exploitées pour un reporting par exemple ?

      Également n'existe t-il pas un moyen de simplement désactiver la page ? En somme elle est toujours visible mais c'est un bloc de béton on ne peut rien y saisir (ou ne rien saisir dans une sélection donnée de cellules)

      En tout cas merci beaucoup !
      0
      1. Modérateur
        Oui.
        tu peux t'en servir dans des formules, ou même via VBA.
        Cependant, via VBA, l'accès direct ne pourra pas se faire.
        MaVar = Sheets("Feuil4").Range("A1").Value 
        ne fonctionnera pas
        Il te faudra utiliser des blocs
        With
        -
        End With
        , comme ceci :
        With Sheets("Feuil4")
        MaVar = .Range("A1").Value 'A NOTER : le point devant Range
        End With
        0