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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 12:32   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Переименовать имена в зависимости от квартала файла

В файле 1_КВ.xlsm есть три листа - Январь, Февраль, Март, а также эти имена есть в яч [k1] каждого листа.
Как сделать, что бы при переименовании файла, все эти имена, автоматом менялись?
Сейчас я в ручную меняю имя месяца в [k1] каждого листа, что бы переименовать листы.
1_КВ.xlsm - Январь, Февраль, Март
2_КВ.xlsm - Апрель, Май, Июнь
3_КВ.xlsm - Июль, Август, Сентябрь
4_КВ.xlsm - Октябрь, Ноябрь, Декабрь

Спасибо.
Вложения
Тип файла: rar 1_КВ.rar (12.0 Кб, 8 просмотров)
valerij вне форума Ответить с цитированием
Старый 30.03.2013, 20:14   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
Private Sub Workbook_Open()
    Base = Left(ThisWorkbook.Name, 1) - 1
    For i = 1 To 3
        Sheets(i).Name = MonthName(Base * 3 + i)
    Next
End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 30.03.2013, 21:04   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
Код:
Private Sub Workbook_Open()
    Base = Left(ThisWorkbook.Name, 1) - 1
    For i = 1 To 3
        Sheets(i).Name = MonthName(Base * 3 + i)
    Next
End Sub
Супер.
Добавил строчку и полный, гут.
Sheets(i).[k1] = MonthName(Base * 3 + i)

Спасибо.

---------------
| ^^пиво^^ \\|""\\_,_
|___________||___|__|)
(@)(@)""*|(@)(@)**(@)
valerij вне форума Ответить с цитированием
Старый 30.03.2013, 23:22   #4
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Во, блин.
А как мне из этого, получить № месяца?
Sheets(i).[k1] = MonthName(Base * 3 + i)

Даже так не идёт, получаю #ЗНАЧ!.
=МЕСЯЦ(K1)
valerij вне форума Ответить с цитированием
Старый 30.03.2013, 23:49   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Base * 3 + i это и есть № месяца.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 31.03.2013, 00:15   #6
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Base * 3 + i это и есть № месяца.
Да, точно. Спасибо.

Но вот это моя строчка
Sheets(i).[k1] = MonthName(Base * 3 + i)

пишет значение в К1 не в формате даты, поэтому программа далее не работает.
Можно как то формат даты сделать, т.е. что бы имя там, было месяца, а в строке формул yy.yy.yy?
valerij вне форума Ответить с цитированием
Старый 31.03.2013, 13:47   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Сделал, обходными путями, но всё работает. Может можно и упростить, но???
Теперь в [k1] во всех трёх листах, отображается как мне надо.
Код:
Base = Left(ThisWorkbook.Name, 1) - 1
    For i = 1 To 3
        Sheets(i).Name = MonthName(Base * 3 + i)
        Sheets(14).Cells(3, i + 9) = MonthName(Base * 3 + i)
        Sheets(15).Cells(2, i + 8) = MonthName(Base * 3 + i)
    Next
    am = Base * 3 + 1: bm = Base * 3 + 2: cm = Base * 3 + 3

    If Sheets(15).Cells(2, 9) = MonthName(Base * 3 + 1) Then Sheets(1).[k1] = "" & am & "/1/2013"
        Sheets(1).Select
        Range("K1").Select
        ActiveCell.FormulaR1C1 = "" & am & "/1/2013"
    If Sheets(15).Cells(2, 10) = MonthName(Base * 3 + 2) Then Sheets(2).[k1] = "" & bm & "/1/2013"
        Sheets(2).Select
        Range("K1").Select
        ActiveCell.FormulaR1C1 = "" & bm & "/1/2013"
    If Sheets(15).Cells(2, 11) = MonthName(Base * 3 + 3) Then Sheets(3).[k1] = "" & cm & "/1/2013"
        Sheets(3).Select
        Range("K1").Select
        ActiveCell.FormulaR1C1 = "" & cm & "/1/2013"

Последний раз редактировалось valerij; 31.03.2013 в 13:49.
valerij вне форума Ответить с цитированием
Старый 31.03.2013, 13:54   #8
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Валер, кончай тормозить. Ты ж вроде не новичок. Нафига тебе эти селекты?
Код:
        Sheets(1).Range("K1").Formula = am & "/1/2013"
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 31.03.2013, 14:41   #9
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
    Base = (Left(ThisWorkbook.Name, 1) - 1) * 3
    For i = 1 To 3
        tmp = MonthName(Base + i)
        Sheets(i).Name = tmp
        Sheets(14).Cells(3, i + 9) = tmp
        Sheets(15).Cells(2, i + 8) = tmp
        Sheets(i).[k1] = DateSerial(Year(Date), Base + i, 1)
    Next
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 31.03.2013, 15:32   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Валер, кончай тормозить. Ты ж вроде не новичок.
Да опять, новичок.
Всё нафиг по забывал.

Всё, что вы с Step_UA по казали, буду пробовать.

Постараюсь, но могёт ещё потревожу, ОК?

Спасибо.
valerij вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задать автоматически дату в форме (начало квартала) nataxa312 Microsoft Office Access 1 06.04.2012 14:58
открытие файла с изменяющимся именем в зависимости от дыты dedelev Microsoft Office Excel 2 31.01.2011 08:45
ВПР - выбор файла в зависимости от имени Questru Microsoft Office Excel 19 08.12.2010 10:40
Переместить файлы по папкам, в зависимости от имени файла Paul Hindenburg Общие вопросы Delphi 1 07.07.2009 09:50
Как можно извлечь все имена разделов Ini файла в юникоде? SkAndrew Общие вопросы Delphi 5 11.06.2009 09:03