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

Вход

Регистрация

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

 

= Мир MS Excel/Определение Диапазона для графика - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Определение Диапазона для графика
Диапазон для графика Дата: Воскресенье, 13.01.2013, 17:41 | Сообщение № 1
Группа: Гости
График нужно автоматизировать таким образом, чтобы выводился лишь для диапазона, указанного в ячейках F4 и G4. Как можно это сделать?

Ссылка на файл:
http://artmetals.ucoz.org/EXcel_Question.xls
 
Ответить
СообщениеГрафик нужно автоматизировать таким образом, чтобы выводился лишь для диапазона, указанного в ячейках F4 и G4. Как можно это сделать?

Ссылка на файл:
http://artmetals.ucoz.org/EXcel_Question.xls

Автор - Диапазон для графика
Дата добавления - 13.01.2013 в 17:41
AlexM Дата: Воскресенье, 13.01.2013, 22:14 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Автоматизация макросом. Код помещен в модуль листа с диаграммой
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, nt As Long, kt  As Long
If Target.Address = "$F$4" Or Target.Address = "$G$4" Then
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
     If Range("F4") = CDate(Range("A" & i)) Then nt = i
     If Range("G4") = CDate(Range("A" & i)) Then kt = i
Next i
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Al").Range("A" & nt & ":B" & kt)
ActiveChart.SeriesCollection(1).Name = Range("B1")
End If
End Sub
[/vba]
Столбцы С и D удалил, так как для построения графика не нужны.
В ячейках ниже задаваемых дат именованные формулы для определения позиций начала и конца диапазона данных. Сделаны для справки и в работе макроса не используются. Можно удалить формулы в ячейках и в менеджере имен.
Данные в столбец А и В можно добавлять. Макрос определит весь диапазон.
Пользователю необходимо лишь задавать даты "С" и "ПО".
К сообщению приложен файл: EXcel_Question_.xls (42.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеАвтоматизация макросом. Код помещен в модуль листа с диаграммой
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, nt As Long, kt  As Long
If Target.Address = "$F$4" Or Target.Address = "$G$4" Then
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
     If Range("F4") = CDate(Range("A" & i)) Then nt = i
     If Range("G4") = CDate(Range("A" & i)) Then kt = i
Next i
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Al").Range("A" & nt & ":B" & kt)
ActiveChart.SeriesCollection(1).Name = Range("B1")
End If
End Sub
[/vba]
Столбцы С и D удалил, так как для построения графика не нужны.
В ячейках ниже задаваемых дат именованные формулы для определения позиций начала и конца диапазона данных. Сделаны для справки и в работе макроса не используются. Можно удалить формулы в ячейках и в менеджере имен.
Данные в столбец А и В можно добавлять. Макрос определит весь диапазон.
Пользователю необходимо лишь задавать даты "С" и "ПО".

Автор - AlexM
Дата добавления - 13.01.2013 в 22:14
ArtiEx Дата: Понедельник, 14.01.2013, 09:50 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 20% ±

AlexM, большое спасибо за макрос. Столбцы C и D были добавлены для того, чтобы на графике распознавался формат даты. Как видите, сейчас на горизонтальной оси выводятся не даты, а числа 1,2,... Можно сделать так, чтобы на основании А и B на графике автоматически распознавались даты?
 
Ответить
СообщениеAlexM, большое спасибо за макрос. Столбцы C и D были добавлены для того, чтобы на графике распознавался формат даты. Как видите, сейчас на горизонтальной оси выводятся не даты, а числа 1,2,... Можно сделать так, чтобы на основании А и B на графике автоматически распознавались даты?

Автор - ArtiEx
Дата добавления - 14.01.2013 в 09:50
AlexM Дата: Понедельник, 14.01.2013, 10:33 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Можно.
1. Кликнуть по букве столбца А. Столбец выделится.
2. Формат ячеек - Дата - Тип *14.03.2001
3. выделить любую пустую ячейку, копировать ее.
4. Кликнуть по букве столбца А. Столбец выделится.
5. Специальная вставка. Поставить точку "Значения" и "Сложить" Ок



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМожно.
1. Кликнуть по букве столбца А. Столбец выделится.
2. Формат ячеек - Дата - Тип *14.03.2001
3. выделить любую пустую ячейку, копировать ее.
4. Кликнуть по букве столбца А. Столбец выделится.
5. Специальная вставка. Поставить точку "Значения" и "Сложить" Ок

Автор - AlexM
Дата добавления - 14.01.2013 в 10:33
ArtiEx Дата: Понедельник, 14.01.2013, 10:54 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 20% ±

AlexM, А можно это сделать на программном уровне, чтобы вручную каждый раз не производить эти монупуляции?
 
Ответить
СообщениеAlexM, А можно это сделать на программном уровне, чтобы вручную каждый раз не производить эти монупуляции?

Автор - ArtiEx
Дата добавления - 14.01.2013 в 10:54
AlexM Дата: Понедельник, 14.01.2013, 10:59 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Наверно можно, но непонятно зачем.
Теперь весь столбец отформатирован как дата.
Ввод новых дат будет в формате дата.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеНаверно можно, но непонятно зачем.
Теперь весь столбец отформатирован как дата.
Ввод новых дат будет в формате дата.

Автор - AlexM
Дата добавления - 14.01.2013 в 10:59
AlexM Дата: Понедельник, 14.01.2013, 11:59 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Ну если очень хочется программно, то замените код на следующий
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, nt As Long, kt  As Long
If Target.Address = "$F$4" Or Target.Address = "$G$4" Then
Columns("A:A").NumberFormat = "m/d/yyyy"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
     Range("A" & i) = CDate(Range("A" & i))
     If Range("F4") = Range("A" & i) Then nt = i
     If Range("G4") = Range("A" & i) Then kt = i
Next i
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Al").Range("A" & nt & ":B" & kt)
ActiveChart.SeriesCollection(1).Name = Range("B1")
End If
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеНу если очень хочется программно, то замените код на следующий
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, nt As Long, kt  As Long
If Target.Address = "$F$4" Or Target.Address = "$G$4" Then
Columns("A:A").NumberFormat = "m/d/yyyy"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
     Range("A" & i) = CDate(Range("A" & i))
     If Range("F4") = Range("A" & i) Then nt = i
     If Range("G4") = Range("A" & i) Then kt = i
Next i
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Al").Range("A" & nt & ":B" & kt)
ActiveChart.SeriesCollection(1).Name = Range("B1")
End If
End Sub
[/vba]

Автор - AlexM
Дата добавления - 14.01.2013 в 11:59
ArtiEx Дата: Понедельник, 14.01.2013, 13:54 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 20% ±

AlexM, Спасибо!
 
Ответить
СообщениеAlexM, Спасибо!

Автор - ArtiEx
Дата добавления - 14.01.2013 в 13:54
  • Страница 1 из 1
  • 1
Поиск:

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