Задать диапазон построения графика по условию
drugojandrew
Дата: Пятница, 26.04.2019, 10:36 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Всем добрый день. Веду ежедневные графики отслеживания уровня производства. Графики недельные, т.е. на каждую неделю новый график. Соответственно каждую неделю создаю новый лист с новым графиком. На графике, помимо данных текущей недели, отображаются данные предыдущей недели (чтобы видеть уровень производства предыдущей недели и стремиться сделать больше). Вопрос стоит в том, как сделать так, чтобы диапазон построения графика за прошлую неделю менялся автоматически? Ведь ссылка не на текущий лист не изменяется при копировании листа. Листам дается имя по концу текущей недели в формате ГГГГ-ММ-ДД.
Всем добрый день. Веду ежедневные графики отслеживания уровня производства. Графики недельные, т.е. на каждую неделю новый график. Соответственно каждую неделю создаю новый лист с новым графиком. На графике, помимо данных текущей недели, отображаются данные предыдущей недели (чтобы видеть уровень производства предыдущей недели и стремиться сделать больше). Вопрос стоит в том, как сделать так, чтобы диапазон построения графика за прошлую неделю менялся автоматически? Ведь ссылка не на текущий лист не изменяется при копировании листа. Листам дается имя по концу текущей недели в формате ГГГГ-ММ-ДД. drugojandrew
Ответить
Сообщение Всем добрый день. Веду ежедневные графики отслеживания уровня производства. Графики недельные, т.е. на каждую неделю новый график. Соответственно каждую неделю создаю новый лист с новым графиком. На графике, помимо данных текущей недели, отображаются данные предыдущей недели (чтобы видеть уровень производства предыдущей недели и стремиться сделать больше). Вопрос стоит в том, как сделать так, чтобы диапазон построения графика за прошлую неделю менялся автоматически? Ведь ссылка не на текущий лист не изменяется при копировании листа. Листам дается имя по концу текущей недели в формате ГГГГ-ММ-ДД. Автор - drugojandrew Дата добавления - 26.04.2019 в 10:36
Karataev
Дата: Пятница, 26.04.2019, 19:43 |
Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация:
533
±
Замечаний:
0% ±
Excel
Макрос создает копию листа "Шаблон", присваивает листу имя: предыдущий лист + 7 дней и в двух графиках подставляет имя предыдущего листа.
[vba]
Код
Sub Создать_копию_шаблона() Dim strSheetName As String Worksheets("Шаблон").Copy Before:=Worksheets("Шаблон") If ActiveSheet.index = 1 Then ActiveSheet.name = Format(Date, "yyyy-mm-dd") Exit Sub End If strSheetName = ActiveSheet.Previous.name strSheetName = CDate(strSheetName) strSheetName = DateAdd("d", 7, strSheetName) strSheetName = Format(strSheetName, "yyyy-mm-dd") ActiveSheet.name = strSheetName ActiveSheet.ChartObjects("Диаграмма 2").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$4:$L$4" ActiveSheet.ChartObjects("Диаграмма 1").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$2:$L$2" End Sub
[/vba]
Макрос создает копию листа "Шаблон", присваивает листу имя: предыдущий лист + 7 дней и в двух графиках подставляет имя предыдущего листа.
[vba]
Код
Sub Создать_копию_шаблона() Dim strSheetName As String Worksheets("Шаблон").Copy Before:=Worksheets("Шаблон") If ActiveSheet.index = 1 Then ActiveSheet.name = Format(Date, "yyyy-mm-dd") Exit Sub End If strSheetName = ActiveSheet.Previous.name strSheetName = CDate(strSheetName) strSheetName = DateAdd("d", 7, strSheetName) strSheetName = Format(strSheetName, "yyyy-mm-dd") ActiveSheet.name = strSheetName ActiveSheet.ChartObjects("Диаграмма 2").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$4:$L$4" ActiveSheet.ChartObjects("Диаграмма 1").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$2:$L$2" End Sub
[/vba]
Karataev
Ответить
Сообщение Макрос создает копию листа "Шаблон", присваивает листу имя: предыдущий лист + 7 дней и в двух графиках подставляет имя предыдущего листа.
[vba]
Код
Sub Создать_копию_шаблона() Dim strSheetName As String Worksheets("Шаблон").Copy Before:=Worksheets("Шаблон") If ActiveSheet.index = 1 Then ActiveSheet.name = Format(Date, "yyyy-mm-dd") Exit Sub End If strSheetName = ActiveSheet.Previous.name strSheetName = CDate(strSheetName) strSheetName = DateAdd("d", 7, strSheetName) strSheetName = Format(strSheetName, "yyyy-mm-dd") ActiveSheet.name = strSheetName ActiveSheet.ChartObjects("Диаграмма 2").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$4:$L$4" ActiveSheet.ChartObjects("Диаграмма 1").Chart.FullSeriesCollection(1).Values = _ "='" & ActiveSheet.Previous.name & "'!$E$2:$L$2" End Sub
[/vba]
Автор - Karataev Дата добавления - 26.04.2019 в 19:43
drugojandrew
Дата: Суббота, 27.04.2019, 18:26 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Karataev , спасибо, то что нужно.
Ответить
Сообщение Karataev , спасибо, то что нужно.Автор - drugojandrew Дата добавления - 27.04.2019 в 18:26