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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2009, 01:29   #1
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию Автоматическое создание листа с названием текущего месяца из шаблона

Есть книга в которой все листы названы каждый своим месяцем и один лист с названием "Шаблон". Надо чтобы, при открытии книги, формула проверяла бы названия листов и, при отсутствии листа с названием текущего месяца, копировала бы лист с названием "Шаблон" в конец книги и присваивала бы этой копии имя текущего месяца.
Спасибо.
ru3000 вне форума Ответить с цитированием
Старый 06.08.2009, 05:24   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В модуль "Эта книга" вставьте код:
Код:
Private Sub Workbook_Open()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name = MonthName(Month(Date)) Then Exit Sub
    Next
    Sheets("Шаблон").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = MonthName(Month(Date))
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 06.08.2009, 09:55   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Я для себя делал подобную штуку. Но я не перебирал все листы, а сравнивал месяц текущей даты с месяцем даты последнего сохранения. И если они не совпадали, то создавал новый лист с названием месяца и года.
Код:
If Month(ThisWorkbook.BuiltinDocumentProperties("Last Save Time")) <> Month(Now) Then
        ActiveWorkbook.Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
        ActiveWorkbook.Sheets(Sheets.Count).Name = MonthName(Month(Now)) & " " & Year(Now)
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.08.2009, 09:58   #4
ru3000
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 163
По умолчанию

Спасибо большое за помощь.
ru3000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какая формула возвращает имя текущего листа? ru3000 Microsoft Office Excel 3 16.07.2009 22:39
Автоматическое сохранение листа в файл Csv flylive Microsoft Office Excel 13 02.04.2009 10:50
Автоматическое заполнение данных из другого листа usgaz@list.ru Microsoft Office Excel 8 17.10.2008 10:41
Сохранение текущего листа Excel в отдельный файл IpS Microsoft Office Excel 10 04.10.2008 13:45
Проверить наличие листа с данным названием Sega Microsoft Office Excel 2 05.08.2008 17:18