Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматическое переименование листов в название месяца года - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое переименование листов в название месяца года (Макросы/Sub)
Автоматическое переименование листов в название месяца года
Klevin081085 Дата: Четверг, 09.04.2015, 23:09 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Добрый вечер!!!
при открытии книги уже созданы листы "лист1", "лист2", "лист3".
А надо что бы при открытии книги листы именовались "Январь", "Февраль", "Март" и т.д. при открытии следующих листов


Сообщение отредактировал Klevin081085 - Пятница, 10.04.2015, 01:44
 
Ответить
СообщениеДобрый вечер!!!
при открытии книги уже созданы листы "лист1", "лист2", "лист3".
А надо что бы при открытии книги листы именовались "Январь", "Февраль", "Март" и т.д. при открытии следующих листов

Автор - Klevin081085
Дата добавления - 09.04.2015 в 23:09
KuklP Дата: Четверг, 09.04.2015, 23:11 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Создайте шаблон со всеми месяцами и новые книги создавайте из этого шаблона.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеСоздайте шаблон со всеми месяцами и новые книги создавайте из этого шаблона.

Автор - KuklP
Дата добавления - 09.04.2015 в 23:11
Klevin081085 Дата: Четверг, 09.04.2015, 23:24 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
KuklP, А макросом не получится!
 
Ответить
СообщениеKuklP, А макросом не получится!

Автор - Klevin081085
Дата добавления - 09.04.2015 в 23:24
RAN Дата: Четверг, 09.04.2015, 23:32 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А макросом не получится!

Ура!
Но враки. :p


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
А макросом не получится!

Ура!
Но враки. :p

Автор - RAN
Дата добавления - 09.04.2015 в 23:32
Manyasha Дата: Четверг, 09.04.2015, 23:32 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Klevin081085, можно так[vba]
Код
Sub rename()
      On Error Resume Next
      For Each Sh In ThisWorkbook.Sheets
          Sh.Name = Format(Sh.Index * 30, "mmmm")
      Next Sh
End Sub
[/vba]Правда больше 12 листов не переименуется, т.к. одинаковых имен у листов не должно быть. Можно называть с годом (правда не понятно с каким, текущим?)

И второй недостаток, если лист с таким именем уже есть (напр январь) и стоит он, например, где-нибудь в конце, порядок названий месяцев съедет. Если так не должно быть, нужно либо удалять лист с именем январь, либо перемещать, либо ничего не делать и идти дальше (как в моем коде :) ) .


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Четверг, 09.04.2015, 23:33
 
Ответить
СообщениеKlevin081085, можно так[vba]
Код
Sub rename()
      On Error Resume Next
      For Each Sh In ThisWorkbook.Sheets
          Sh.Name = Format(Sh.Index * 30, "mmmm")
      Next Sh
End Sub
[/vba]Правда больше 12 листов не переименуется, т.к. одинаковых имен у листов не должно быть. Можно называть с годом (правда не понятно с каким, текущим?)

И второй недостаток, если лист с таким именем уже есть (напр январь) и стоит он, например, где-нибудь в конце, порядок названий месяцев съедет. Если так не должно быть, нужно либо удалять лист с именем январь, либо перемещать, либо ничего не делать и идти дальше (как в моем коде :) ) .

Автор - Manyasha
Дата добавления - 09.04.2015 в 23:32
Klevin081085 Дата: Четверг, 09.04.2015, 23:56 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Manyasha, Что то не получается.
ввожу формулу в "Эта Книга"
 
Ответить
СообщениеManyasha, Что то не получается.
ввожу формулу в "Эта Книга"

Автор - Klevin081085
Дата добавления - 09.04.2015 в 23:56
RAN Дата: Пятница, 10.04.2015, 00:02 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
ввожу формулу в "Эта Книга"

А ПРАВИЛА написаны прежде всего, для того, чтобы вы НЕ ДЕЛАЛИ
вожу формулу в "Эта Книга"


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
ввожу формулу в "Эта Книга"

А ПРАВИЛА написаны прежде всего, для того, чтобы вы НЕ ДЕЛАЛИ
вожу формулу в "Эта Книга"

Автор - RAN
Дата добавления - 10.04.2015 в 00:02
Manyasha Дата: Пятница, 10.04.2015, 00:46 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Klevin081085, прочитайте правила и приложите файл. А так же опишите подробнее Вашу задачу, когда должен срабатывать макрос: при открытии книги, при нажатии на кнопку или еще как-то.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеKlevin081085, прочитайте правила и приложите файл. А так же опишите подробнее Вашу задачу, когда должен срабатывать макрос: при открытии книги, при нажатии на кнопку или еще как-то.

Автор - Manyasha
Дата добавления - 10.04.2015 в 00:46
Kuzmich Дата: Пятница, 10.04.2015, 01:09 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
А макросом не получится!

Вот видел макрос создания книги с 12 листами с названиями месяцев, автора не помню
[vba]
Код

Sub YearMonthO()
Dim intSheetCount As Integer
Workbooks.Add
Worksheets.Add Count:=12 - _
ActiveWorkbook.Worksheets.Count
For intSheetCount = 1 To 12
     Worksheets(intSheetCount).Name = _
     Format(DateSerial(2000, intSheetCount, 1), "MMMM")
Next intSheetCount
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
А макросом не получится!

Вот видел макрос создания книги с 12 листами с названиями месяцев, автора не помню
[vba]
Код

Sub YearMonthO()
Dim intSheetCount As Integer
Workbooks.Add
Worksheets.Add Count:=12 - _
ActiveWorkbook.Worksheets.Count
For intSheetCount = 1 To 12
     Worksheets(intSheetCount).Name = _
     Format(DateSerial(2000, intSheetCount, 1), "MMMM")
Next intSheetCount
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 10.04.2015 в 01:09
Klevin081085 Дата: Пятница, 10.04.2015, 01:45 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Kuzmich, не получается
 
Ответить
СообщениеKuzmich, не получается

Автор - Klevin081085
Дата добавления - 10.04.2015 в 01:45
KuklP Дата: Пятница, 10.04.2015, 08:41 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Вот вставьте это в модуль книги personal.xls. В самое начало модуля. Только что Вы с этим счастьем будете делать, когда надо будет создать обычную книгу..
[vba]
Код
Option Explicit

Private WithEvents App As Application    ' объявляем объект Application для того, чтобы можно было отлавливать события других книг

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
     Dim i&
     Wb.Worksheets.Add Count:=12 - _
                           Wb.Worksheets.Count
     For i = 1 To 12
         Wb.Worksheets(i).Name = Format(i * 30, "mmmm")
     Next i
End Sub
[/vba]
Сохраните персонал и перегрузите экс.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВот вставьте это в модуль книги personal.xls. В самое начало модуля. Только что Вы с этим счастьем будете делать, когда надо будет создать обычную книгу..
[vba]
Код
Option Explicit

Private WithEvents App As Application    ' объявляем объект Application для того, чтобы можно было отлавливать события других книг

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
     Dim i&
     Wb.Worksheets.Add Count:=12 - _
                           Wb.Worksheets.Count
     For i = 1 To 12
         Wb.Worksheets(i).Name = Format(i * 30, "mmmm")
     Next i
End Sub
[/vba]
Сохраните персонал и перегрузите экс.

Автор - KuklP
Дата добавления - 10.04.2015 в 08:41
Kuzmich Дата: Пятница, 10.04.2015, 11:35 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
Kuzmich, не получается

Я проверял для Excel2003, в котором по умолчанию создается книга с тремя листами.
Запустите вышеприведенный макрос из любой книги и будет создана новая книга с 12-ю
листами с названиями месяцев. Эту новую книгу сохраните как... с нужным вам именем.
Удачи!
 
Ответить
Сообщение
Цитата
Kuzmich, не получается

Я проверял для Excel2003, в котором по умолчанию создается книга с тремя листами.
Запустите вышеприведенный макрос из любой книги и будет создана новая книга с 12-ю
листами с названиями месяцев. Эту новую книгу сохраните как... с нужным вам именем.
Удачи!

Автор - Kuzmich
Дата добавления - 10.04.2015 в 11:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое переименование листов в название месяца года (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!