Страница 1 из 1
ЕвгеничЪ
Всем доброго!

Я уже как то задавал такой вопрос, но в тот раз времени небыло, потому поверхностное гугление особого результата не дало.

Задача переименовать n-е количество (все имеющиеся в книге) листов в экселе в даты, начиная с какой то определенной даты.
Т.е. например начиная с 07.01.15 и далее 30 листов...

Сам представляю такой вариант.
Делаем шаблонный файл, размечаем там заранее все таблицы, вводим нужные формулы, параметры страницы и т.д. и работать будем каждый раз с этим шаблоном.

На первой странице шаблонного файла например в ячейке А1 вводим начальную дату 07.01.15, на каждой последующей A1+1, А1+2 и т.д., т.е. один раз это сделать не в облом и теперь на каждой странице будет именно нужная дата, отсчитанная от начально заданной.
Ну и заодно это решает проблему с 30-ю и 31-м днем в месяцах, эксель в таком случае уже не ошибется.

Теперь дело за малым... на каждом листе в А1 имеем нужную дату, надо изменить название каждого листа в соответствии с этой ячейков.
Вроде как без макросов не получится, но с макросами ваще не работал...

Что скажет всемогущий лол?
realist
ну, как бы я сделал.. наваял программулю...
выбор файла-Эксель, выбор даты.. и кнопка пуск.. жмешь, она открывает через Excel.Application файлец берет подряд все закладки (там есть такое), каждой закладке даешь нужное название, прибавляя единичку к переменной типа Дата. как-то так Pardon

Добавлено спустя 17 минут 9 секунд:

всё, наваял) надо?
ЕвгеничЪ
realist писал(а):

всё, наваял) надо?


Неплохо бы)) только я пока тебя не понял если честно hehe

Добавлено спустя 1 минуту 18 секунд:

Тут на просторах нашел вот такой вариант:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("A1") Then
If Target.Value <> "" Then
If Len(Target.Value) < 30 Then
Target.Parent.Name = Target.Value
End If
End If
End If
End Sub


Но блин когда я меняю начальную дату, то переименовывается только начальный лист. В остальных ячейка с датой пересчитывается, но к листу новое имя не присваевается((
realist
ЕвгеничЪ
почту давай, пришлю exe-шнег
ЕвгеничЪ
realist
см. личку

Добавлено спустя 14 минут 27 секунд:

Получил, что с ним делать то?
realist
ЕвгеничЪ
раззипуй и запущай. там календарь. выбираешь нужную дату. затем выбираешь нужный Excel-файл (кнопку увидишь), потом жми Пуск. всё
ЕвгеничЪ
realist
Component MSCAL.OCX or one of is dependencies not correctly registered: a file is missing or invlid
realist
календаря у тебя мелкомягкого нет в системе. Высылаю версию, где дату надо вбивать руками. Окошко я там сделал текстовое вместо календаря. Любую валидную дату надо ввести, я пробовал 12.12.2012
ЕвгеничЪ
Теперь ругается на компонент COMDLG32.OCX

Слушай, а может можно мой способ допилить? он уже почти работает же, просто надо что бы макрос срабатывал на всех листах, например по кнопке, но можно и автоматически после изменения значений...
rover
Может надо по тем же папкам разложить, что у автора программы были, когда он ее составлял. Может пути где прописались

Дату в экселе ставлю тупо правой кнопкой на ячейку = дата, можно настроить дату время открытия файла например. Остальное х.з.
realist
ЕвгеничЪ писал(а):

Теперь ругается на компонент COMDLG32.OCX

Слушай, а может можно мой способ допилить? он уже почти работает же, просто надо что бы макрос срабатывал на всех листах, например по кнопке, но можно и автоматически после изменения значений...

послал вариант, где нет ни одного визуального компонента. Но как ты работаешь на машине, на которой вообще нет никаких визуальных компонентов - я не понимаю. Как может не быть компонента, который вызывает стандартное окно диалога Microsoft, изумлен.
ЕвгеничЪ
realist писал(а):

послал вариант, где нет ни одного визуального компонента. Но как ты работаешь на машине, на которой вообще нет никаких визуальных компонентов - я не понимаю. Как может не быть компонента, который вызывает стандартное окно диалога Microsoft, изумлен.



я хз, машина как машина, вроде все работает, проблем нет...
попробую отпишусь...
ЕвгеничЪ
realist Спасибо! работает!
Подскажи, а нельзя забубенить это в самом экселе? т.е. как присвоить имя листу из ячейки пусть даже макросом...
realist
ЕвгеничЪ писал(а):

realist Спасибо! работает!
Подскажи, а нельзя забубенить это в самом экселе? т.е. как присвоить имя листу из ячейки пусть даже макросом...


Сделал тоже самое макросом, выслал.

При открытии файла может сказать что-нить типа - содержание блокировано из-за настроек .. ла-ла-ла... надо нажать на это сообщение, откроется страничка с настройками - макрос включен или не стоит. Надо поставить "включить это содержимое".

потом в документе "Макрос" - "t" (он так называется), появится окошко, аналогичное тому, что было в программе. делает тоже самое.
ЕвгеничЪ
realist
Good Drinks or Beer Drinks or Beer Drinks or Beer

Проверю отпишусь!
s-t-r-i-k-e-r
realist писал(а):

Но как ты работаешь на машине, на которой вообще нет никаких визуальных компонентов - я не понимаю. Как может не быть компонента, который вызывает стандартное окно диалога Microsoft, изумлен.



Как-то так?



hehe
ЕвгеничЪ
ЕвгеничЪ
Отлично! Как теперь этот функционал перенести в мой файл-шаблон?
realist
ЕвгеничЪ писал(а):

ЕвгеничЪ
Отлично! Как теперь этот функционал перенести в мой файл-шаблон?

ну, сделай в своем файле новый макрос и ляпни туда мой код)
ЕвгеничЪ
realist
Все вроде получилось!
Нихрена не понял, но работает hehe
Большое спасибо!
realist
ЕвгеничЪ писал(а):

realist
Все вроде получилось!
Нихрена не понял, но работает hehe
Большое спасибо!

Drinks or Beer th2 Drinks or Beer
Новая тема Ответить на тему
Показать сообщения:
Страница 1 из 1
Перейти:
ИНФОРМАЦИЯ ПО ИКОНКАМ И ВОЗМОЖНОСТЯМ

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы