Rendre une feuille inactive a partir d'une certaine date
arnoH
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
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, et a vot bon coeur !
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, et a vot bon coeur !
3 réponses
-
Bonjour, qqchose comme ça ?
Sub desactiver() If Day(Now) > 8 Then GoTo ACT If Month(Now) <> 8 Then GoTo ACT Sheets("Feuil1").Visible = 0 Exit Sub ACT: Sheets("Feuil1").Visible = -1 End Sub
Ou simplement :
Sub Desactiever() If Date(Now) < "08.08.14" AND Date(Now) > "31.07.14" Then Sheets("Feuil1").Visible = 0 Else Sheets("Feuil1").Visible = -1 End Sub
Mais la 1ere marche toute les année contrairement à la 2e
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utiles" -
Bonjour,
Dim date1 As Date, date2 As Date date1 = CDate("1/8/2014") date2 = CDate("7/8/2014") If (Date >= date1 And Date <= date2) Or (Time >= "08:00" And Time < "08:30:00") Then Worksheets("Feuil1").Protect Else Worksheets("Feuil1").Unprotect End If
J'ai mis les dates en variables qu'elles soient au début pour faciliter leur mise à jour.
eric
-
C'est parfait la seconde réponse c'est complètement ça !
Juste pour être certain d'avoir compris tout le code
Dim date1 As Date cela signifie que la variable date1 doit être considéré comme... une date !
Si je comprend bien ta ligne 4
- Si la date d'aujourd'hui est supérieure ou égale a DATE1 et que la date d'aujourd'hui est inférieure a DATE2 alors la feuille est protégée
C'est le contraire que je recherche (rendre active pendant la période) donc il me suffit de remplacer .Protect par .Unprotect-
Dim date1 As Date cela signifie que la variable date1 doit être considéré comme... une date !
C'est le typage des variables. Fortement conseiller de prendre cette habitude.
Elle doit recevoir une date et rien d'autre. Un peu contraignant au début mais fiabilise le code (en plus de le rendre plus rapide si tu choisis le bon type) et aide au déboguage.
eric
-