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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2009, 13:30   #1
judge_arm
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 12
По умолчанию Название листов по дате

Есть такая проблема ... В рабочей книге есть лист с названиями месяцев, типа "июль, август", нужно скопировать последний лист по месяцам т.е. август и назвать его сентябрь. Кто может помогите, возможно кто-то имеет пример кода или от чего отталкиваться!
judge_arm вне форума Ответить с цитированием
Старый 19.08.2009, 14:16   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Нужно оттолкнутся от кнопки записать макрос,проделать все необходимые операции,посмотреть код и применить в написании макроса
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.08.2009, 14:34   #3
judge_arm
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 12
По умолчанию

Если это было бы так легко, то я бы давно это сделал і неписал на форуме!!! Здесь проблема как опридилить последний месяц и назвать скопированный лист следующим месяцем ... Возможно лучше очередность месяцев делать в ячейках затем название вставлять в название листа?
judge_arm вне форума Ответить с цитированием
Старый 19.08.2009, 14:46   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Может так?
Код:
Sub Copy_Sheet_And_ReName()
    Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = MonthName(Sheets.Count)
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 19.08.2009, 15:00   #5
judge_arm
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 12
По умолчанию

У меня в файле, листы не только с месяцами...
judge_arm вне форума Ответить с цитированием
Старый 19.08.2009, 15:12   #6
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от judge_arm Посмотреть сообщение
У меня в файле, листы не только с месяцами...
Я-то этого не знаю. В первом Вашем посте про это ничего не написано. Может у Вас и листы с пробелами или опечатки есть. Накидайте пример файла с листами(как они располагаться будут в реале) и тогда получите более адаптированный вариант.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 19.08.2009, 16:57   #7
judge_arm
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 12
По умолчанию

Сорри, просто недогадался о таком варианте, потому ненаписал)). Набросил пример файла ...
Вложения
Тип файла: zip example_plan.zip (23.4 Кб, 12 просмотров)
judge_arm вне форума Ответить с цитированием
Старый 19.08.2009, 17:21   #8
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вот так.
Код:
Option Explicit

Sub Copy_Sheet_And_ReName()
    Dim wsSheet As Worksheet
    Dim iNumMonth As Integer, iNum As Integer
    iNumMonth = 0
    For Each wsSheet In Sheets
    On Error Resume Next
        iNum = Switch(LCase(wsSheet.Name) = "январь", 1, LCase(wsSheet.Name) = "февраль", 2, LCase(wsSheet.Name) = "март", 3, _
                           LCase(wsSheet.Name) = "апрель", 4, LCase(wsSheet.Name) = "май", 5, LCase(wsSheet.Name) = "июнь", 6, _
                           LCase(wsSheet.Name) = "июль", 7, LCase(wsSheet.Name) = "август", 8, LCase(wsSheet.Name) = "сентябрь", 9, _
                           LCase(wsSheet.Name) = "октябрь", 10, LCase(wsSheet.Name) = "ноябрь", 11, LCase(wsSheet.Name) = "декабрь", 12)
    If iNumMonth < iNum Then iNumMonth = iNum
    Next wsSheet
    On Error GoTo 0
    Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = MonthName(iNumMonth + 1)
End Sub
Вложения
Тип файла: rar плани_07.rar (18.5 Кб, 16 просмотров)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 19.08.2009, 18:09   #9
judge_arm
Пользователь
 
Регистрация: 15.06.2009
Сообщений: 12
По умолчанию

Все гуд! Очень благодарен!!!
judge_arm вне форума Ответить с цитированием
Старый 19.08.2009, 22:46   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от The_Prist
Код:
Option Explicit
The_Prist!
Че делает, поясни!
valerij вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск листов gavrylyuk Microsoft Office Excel 9 26.06.2009 16:23
сортировка листов cheshiki1 Microsoft Office Excel 2 29.05.2009 17:48
Надо найти функцию, По вводимой в ячейку дате рождения показать название соответствующего знака Зодиака. Incognitoal Microsoft Office Excel 13 03.03.2009 08:18
Cравнения 2 листов anju Microsoft Office Excel 8 08.09.2008 14:46
вставить в CheckBox на форме название только тех листов книги, которые помечены определенным символом? Bezdar Microsoft Office Excel 4 23.07.2008 15:30