Здравствуйте! Помогите, пожалуйста. Изначально существует файл с тремя листами: Заявка В, Заявка С и календарь, позаимствованный у вас, за что отдельное спасибо. Нужно, чтобы при выборе даты в календаре (например 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 должна соответствовать имени текущего листа. Календарь прикладываю отдельно из за веса, а так хотелось бы, что бы он был в файле примера. Спасибо.
Здравствуйте! Помогите, пожалуйста. Изначально существует файл с тремя листами: Заявка В, Заявка С и календарь, позаимствованный у вас, за что отдельное спасибо. Нужно, чтобы при выборе даты в календаре (например 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
Свяжите значение календаря с какой-нибудь ячейкой, а формулы на листе ориентируйте на значение этой ячейки... или вам надо нарисовать шесть строк в макросе, которые пропишут нужные значения по ячейкам? Что же касается "автоматического" создания листов - то как вы себе это представляете? Каждый щелчок по календарю будет создавать до трёх новых листов,что ли? Если же имеется в виду, что надо сделать такую процедурку, что создаст три новых листа по нажатию какой-то отдельной кнопочки - то в чём проблема?
Свяжите значение календаря с какой-нибудь ячейкой, а формулы на листе ориентируйте на значение этой ячейки... или вам надо нарисовать шесть строк в макросе, которые пропишут нужные значения по ячейкам? Что же касается "автоматического" создания листов - то как вы себе это представляете? Каждый щелчок по календарю будет создавать до трёх новых листов,что ли? Если же имеется в виду, что надо сделать такую процедурку, что создаст три новых листа по нажатию какой-то отдельной кнопочки - то в чём проблема?AndreTM
С автоматическим созданием листов я погорячился наверное. Пусть эти три листа будут шаблонами. Самое главное, чтобы при изменении даты в календаре менялись даты в ячейках на листах и соответственно менялись сами имена листов по схеме, описанной в первом посте. С макросами я на они)) Хотелось бы по максимуму автоматизировать процесс. Такие файлы будут на каждый день года.
С автоматическим созданием листов я погорячился наверное. Пусть эти три листа будут шаблонами. Самое главное, чтобы при изменении даты в календаре менялись даты в ячейках на листах и соответственно менялись сами имена листов по схеме, описанной в первом посте. С макросами я на они)) Хотелось бы по максимуму автоматизировать процесс. Такие файлы будут на каждый день года.Cmak
Я вас тоже не понял... Зачем дату ставить в имя листа? Дата у вас и так есть (после выбора из календаря), где-то в ячейке какого-то листа. Например, в Календарь!A1. В виде даты. Ориентируясь на эту ячейку, вы и заполняете нужные вам ячейки в Заявках (либо через формат, либо используя функции работы с датой), а также заполняете даты за "предыдущие" дни.
Я вас тоже не понял... Зачем дату ставить в имя листа? Дата у вас и так есть (после выбора из календаря), где-то в ячейке какого-то листа. Например, в Календарь!A1. В виде даты. Ориентируясь на эту ячейку, вы и заполняете нужные вам ячейки в Заявках (либо через формат, либо используя функции работы с датой), а также заполняете даты за "предыдущие" дни.AndreTM
Да, читаю свой ответ и сам не понимаю)) В выложенном вами файле листы, -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
Вроде нашел, что надо, но не получается объединить эти два макроса, что бы работали на одном листе. Этот из выпадающего календаря: [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]
Вроде нашел, что надо, но не получается объединить эти два макроса, что бы работали на одном листе. Этот из выпадающего календаря: [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
Вопрос снят, разобрался Может быть кому и пригодится. Кликаем на ячейку В39, выбираем дату, кликаем кнопку "Нажми меня", меняется дата на всех листах и имена в соответствии с датой. Вобщем по аналогии, описанной в первом посте.
Вопрос снят, разобрался Может быть кому и пригодится. Кликаем на ячейку В39, выбираем дату, кликаем кнопку "Нажми меня", меняется дата на всех листах и имена в соответствии с датой. Вобщем по аналогии, описанной в первом посте.Cmak