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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос и редактирование даты из календаря на листы. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос и редактирование даты из календаря на листы. (Макросы Sub)
Перенос и редактирование даты из календаря на листы.
Cmak Дата: Пятница, 10.01.2014, 19:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Помогите, пожалуйста. Изначально существует файл с тремя листами: Заявка В, Заявка С и календарь, позаимствованный у вас, за что отдельное спасибо. Нужно, чтобы при выборе даты в календаре (например 20.01.2014) на листах Заявка В и Заявка С в ячейках C5,D5,E5 и B39,C39,D39, дата менялась на соответствующую, а в шапке таблицы должно прописываться выбранное число календаря +1 день, т.е. 21, 22 и т.д. (5 столбцов).
Так же необходимо автоматически создать три листа с именами -3, -2 и -1 день от выбранной даты в календаре: 17.01.2014, 18.01.2014 и 19.01.2014. На этих листах дата в ячейке C2D2 должна соответствовать имени текущего листа.
Календарь прикладываю отдельно из за веса, а так хотелось бы, что бы он был в файле примера. Спасибо.
К сообщению приложен файл: 2854862.xls (73.5 Kb) · VovaK___mod2.xls (64.5 Kb)
 
Ответить
СообщениеЗдравствуйте! Помогите, пожалуйста. Изначально существует файл с тремя листами: Заявка В, Заявка С и календарь, позаимствованный у вас, за что отдельное спасибо. Нужно, чтобы при выборе даты в календаре (например 20.01.2014) на листах Заявка В и Заявка С в ячейках C5,D5,E5 и B39,C39,D39, дата менялась на соответствующую, а в шапке таблицы должно прописываться выбранное число календаря +1 день, т.е. 21, 22 и т.д. (5 столбцов).
Так же необходимо автоматически создать три листа с именами -3, -2 и -1 день от выбранной даты в календаре: 17.01.2014, 18.01.2014 и 19.01.2014. На этих листах дата в ячейке C2D2 должна соответствовать имени текущего листа.
Календарь прикладываю отдельно из за веса, а так хотелось бы, что бы он был в файле примера. Спасибо.

Автор - Cmak
Дата добавления - 10.01.2014 в 19:55
AndreTM Дата: Пятница, 10.01.2014, 20:36 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Свяжите значение календаря с какой-нибудь ячейкой, а формулы на листе ориентируйте на значение этой ячейки... или вам надо нарисовать шесть строк в макросе, которые пропишут нужные значения по ячейкам?
Что же касается "автоматического" создания листов - то как вы себе это представляете? Каждый щелчок по календарю будет создавать до трёх новых листов,что ли? :)
Если же имеется в виду, что надо сделать такую процедурку, что создаст три новых листа по нажатию какой-то отдельной кнопочки - то в чём проблема?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеСвяжите значение календаря с какой-нибудь ячейкой, а формулы на листе ориентируйте на значение этой ячейки... или вам надо нарисовать шесть строк в макросе, которые пропишут нужные значения по ячейкам?
Что же касается "автоматического" создания листов - то как вы себе это представляете? Каждый щелчок по календарю будет создавать до трёх новых листов,что ли? :)
Если же имеется в виду, что надо сделать такую процедурку, что создаст три новых листа по нажатию какой-то отдельной кнопочки - то в чём проблема?

Автор - AndreTM
Дата добавления - 10.01.2014 в 20:36
Cmak Дата: Суббота, 11.01.2014, 08:31 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
С автоматическим созданием листов я погорячился наверное. Пусть эти три листа будут шаблонами. Самое главное, чтобы при изменении даты в календаре менялись даты в ячейках на листах и соответственно менялись сами имена листов по схеме, описанной в первом посте. С макросами я на они)) Хотелось бы по максимуму автоматизировать процесс. Такие файлы будут на каждый день года.
 
Ответить
СообщениеС автоматическим созданием листов я погорячился наверное. Пусть эти три листа будут шаблонами. Самое главное, чтобы при изменении даты в календаре менялись даты в ячейках на листах и соответственно менялись сами имена листов по схеме, описанной в первом посте. С макросами я на они)) Хотелось бы по максимуму автоматизировать процесс. Такие файлы будут на каждый день года.

Автор - Cmak
Дата добавления - 11.01.2014 в 08:31
AndreTM Дата: Воскресенье, 12.01.2014, 13:19 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Зачем имена листов-то менять, если всё равно книга - на конкретную дату, и где-то будет храниться эта дата?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеЗачем имена листов-то менять, если всё равно книга - на конкретную дату, и где-то будет храниться эта дата?

Автор - AndreTM
Дата добавления - 12.01.2014 в 13:19
Cmak Дата: Воскресенье, 12.01.2014, 15:25 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Имена менять затем, что они отстают от даты книги. Вопрос не понял.
 
Ответить
СообщениеИмена менять затем, что они отстают от даты книги. Вопрос не понял.

Автор - Cmak
Дата добавления - 12.01.2014 в 15:25
AndreTM Дата: Воскресенье, 12.01.2014, 16:17 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Я вас тоже не понял... Зачем дату ставить в имя листа?
Дата у вас и так есть (после выбора из календаря), где-то в ячейке какого-то листа. Например, в Календарь!A1. В виде даты.
Ориентируясь на эту ячейку, вы и заполняете нужные вам ячейки в Заявках (либо через формат, либо используя функции работы с датой), а также заполняете даты за "предыдущие" дни.
К сообщению приложен файл: 10-8304-1-1.xls (73.0 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеЯ вас тоже не понял... Зачем дату ставить в имя листа?
Дата у вас и так есть (после выбора из календаря), где-то в ячейке какого-то листа. Например, в Календарь!A1. В виде даты.
Ориентируясь на эту ячейку, вы и заполняете нужные вам ячейки в Заявках (либо через формат, либо используя функции работы с датой), а также заполняете даты за "предыдущие" дни.

Автор - AndreTM
Дата добавления - 12.01.2014 в 16:17
Cmak Дата: Воскресенье, 12.01.2014, 17:10 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Да, читаю свой ответ и сам не понимаю)) В выложенном вами файле листы, -1, -2, -3 дня должны обязательно иметь имена соответственно 19.01.2014; 18.01.2014 и 17.01.2014. На этих листах будут отчеты за прошедшие дни, такая форма у книги.
 
Ответить
СообщениеДа, читаю свой ответ и сам не понимаю)) В выложенном вами файле листы, -1, -2, -3 дня должны обязательно иметь имена соответственно 19.01.2014; 18.01.2014 и 17.01.2014. На этих листах будут отчеты за прошедшие дни, такая форма у книги.

Автор - Cmak
Дата добавления - 12.01.2014 в 17:10
Cmak Дата: Воскресенье, 12.01.2014, 18:07 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вроде нашел, что надо, но не получается объединить эти два макроса, что бы работали на одном листе.
Этот из выпадающего календаря:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("F:F")) Is Nothing Then
DateForm.Show
End If
End Sub
[/vba]
А этот для изменения имени листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:A3"), Target) Is Nothing Then
For Each iCell In Target
Sheets(iCell.Row).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Row))
Next
End If
End Sub
[/vba]


Сообщение отредактировал Serge_007 - Воскресенье, 12.01.2014, 18:08
 
Ответить
СообщениеВроде нашел, что надо, но не получается объединить эти два макроса, что бы работали на одном листе.
Этот из выпадающего календаря:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("F:F")) Is Nothing Then
DateForm.Show
End If
End Sub
[/vba]
А этот для изменения имени листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1:A3"), Target) Is Nothing Then
For Each iCell In Target
Sheets(iCell.Row).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Row))
Next
End If
End Sub
[/vba]

Автор - Cmak
Дата добавления - 12.01.2014 в 18:07
Cmak Дата: Вторник, 14.01.2014, 06:55 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вопрос снят, разобрался :D
Может быть кому и пригодится. Кликаем на ячейку В39, выбираем дату, кликаем кнопку "Нажми меня", меняется дата на всех листах и имена в соответствии с датой. Вобщем по аналогии, описанной в первом посте.
К сообщению приложен файл: __.xlsm (70.5 Kb)


Сообщение отредактировал Cmak - Вторник, 14.01.2014, 08:28
 
Ответить
СообщениеВопрос снят, разобрался :D
Может быть кому и пригодится. Кликаем на ячейку В39, выбираем дату, кликаем кнопку "Нажми меня", меняется дата на всех листах и имена в соответствии с датой. Вобщем по аналогии, описанной в первом посте.

Автор - Cmak
Дата добавления - 14.01.2014 в 06:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос и редактирование даты из календаря на листы. (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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