Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 20:29   #1
frozzy_16
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 27
По умолчанию Скрытие листов.

Возможно ли скрывать листы по времени.

Пример:
Файл с большим количеством листов, каждый лист это день месяца.
Скрыть лист, 1 число месяца, 2 числа в 15:00. Что бы человек который будет пользоваться файлом 2 числа не мог просмотреть что было в листе за 1 число.

заранее благодарен!!!!
frozzy_16 вне форума Ответить с цитированием
Старый 18.03.2010, 16:05   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

возможно.

формулируйте задачу, выкладывайте пример
Dophin вне форума Ответить с цитированием
Старый 18.03.2010, 16:05   #3
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Код:
Sub SheetsHide()
Dim Sh As Object
For Each Sh In ThisWorkbook.Sheets
    If (Val(Sh.Name) < Day(Now)) Or (Val(Sh.Name) = Day(Now) And Hour(Now) > 15) Then Sh.Visible = False
Next
End Sub
При запуске скроются все листы с именами меньше текущего числа, а также Лист сегодняшнего числа, если время больше 15:00.
Maxx вне форума Ответить с цитированием
Старый 18.03.2010, 16:23   #4
frozzy_16
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 27
По умолчанию

Сегодняшний лист не должен скрываться.....
Он должен скрыться только на следующий день.

Пример.
Сегодня 18 марта. Этот лист должен скрыться 19 марта в 15:00.
frozzy_16 вне форума Ответить с цитированием
Старый 18.03.2010, 16:32   #5
serikov
Пользователь
 
Регистрация: 16.07.2009
Сообщений: 29
По умолчанию

Добавь к текущему дню +1, тому который после or
serikov вне форума Ответить с цитированием
Старый 18.03.2010, 16:34   #6
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

автору надо что бы автоматом, то есть надо на Ontime вешать
Dophin вне форума Ответить с цитированием
Старый 18.03.2010, 16:51   #7
frozzy_16
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 27
По умолчанию

Спасибо попробую.... но я не силен в макросах....


Тема пока незакрыта....

Последний раз редактировалось frozzy_16; 18.03.2010 в 17:44.
frozzy_16 вне форума Ответить с цитированием
Старый 18.03.2010, 17:57   #8
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

В модуле Эта книга разместите:
Код:
Private Sub Workbook_Open()
    Application.OnTime TimeValue("15:00:00"), "SheetsHide"
    Dim Sh As Object
    For Each Sh In ThisWorkbook.Sheets
        If Val(Sh.Name) < Day(Now) - 1 Then Sh.Visible = False
        If Val(Sh.Name) = Day(Now) - 1 And Hour(Now) > 15 Then Sh.Visible = False
    Next
End Sub
В любом модуле раззместите
Код:
Sub SheetsHide()
    Application.OnTime TimeValue("15:00:00"), "SheetsHide"
    Dim Sh As Object
    For Each Sh In ThisWorkbook.Sheets
        If Val(Sh.Name) = Day(Now) - 1 And Hour(Now) > 15 Then Sh.Visible = False
    Next
End Sub
Как работает:
1. Если открыли книгу после 15:00, то скроются все листы с именем < 18
2. Если время меньше, чем 15:00, то скроются все листы с именем < 17. Лист "17" будет виден, но в 15:00 он также скроется автоматически.
Maxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрытие листов с последующем открытием Screame Microsoft Office Excel 15 11.11.2009 14:04
Скрытие <> Яр|/||< (^_^) Общие вопросы Delphi 6 20.10.2009 17:17
Скрытие игры Олег86 Операционные системы общие вопросы 2 30.01.2009 15:35
Скрытие формы SERG1980 Общие вопросы Delphi 3 23.10.2007 17:28