Перемещение диаграммы в видимую область
drugojandrew
Дата: Понедельник, 31.08.2015, 15:18 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 143
Репутация:
0
±
Замечаний:
0% ±
Excel 2016, Microsoft 365
Добрый день. Есть лист с диаграммой. На листе много значений, по которым диаграмма строится, и периодически они добавляются. Как сделать так, чтобы диаграмма перемещалась в видимую область листа при добавлении значений, или перемещалась к первой пустой ячейке в столбце, либо что-то в этом роде?
Добрый день. Есть лист с диаграммой. На листе много значений, по которым диаграмма строится, и периодически они добавляются. Как сделать так, чтобы диаграмма перемещалась в видимую область листа при добавлении значений, или перемещалась к первой пустой ячейке в столбце, либо что-то в этом роде? drugojandrew
Ответить
Сообщение Добрый день. Есть лист с диаграммой. На листе много значений, по которым диаграмма строится, и периодически они добавляются. Как сделать так, чтобы диаграмма перемещалась в видимую область листа при добавлении значений, или перемещалась к первой пустой ячейке в столбце, либо что-то в этом роде? Автор - drugojandrew Дата добавления - 31.08.2015 в 15:18
_Boroda_
Дата: Понедельник, 31.08.2015, 15:27 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация:
6667
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Так нужно? В модуль листа [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Shapes("Диаграмма 1").Top = Target.Top End Sub
[/vba] Диаграмма прыгает на ту строку, в которой произошло изменение. Можно по другому событию или в другое место. Главное суть - [vba]Код
Диаграмма.Тор=Что_то.Тор
[/vba]
Так нужно? В модуль листа [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Shapes("Диаграмма 1").Top = Target.Top End Sub
[/vba] Диаграмма прыгает на ту строку, в которой произошло изменение. Можно по другому событию или в другое место. Главное суть - [vba]Код
Диаграмма.Тор=Что_то.Тор
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Так нужно? В модуль листа [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Shapes("Диаграмма 1").Top = Target.Top End Sub
[/vba] Диаграмма прыгает на ту строку, в которой произошло изменение. Можно по другому событию или в другое место. Главное суть - [vba]Код
Диаграмма.Тор=Что_то.Тор
[/vba] Автор - _Boroda_ Дата добавления - 31.08.2015 в 15:27
drugojandrew
Дата: Понедельник, 31.08.2015, 16:53 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 143
Репутация:
0
±
Замечаний:
0% ±
Excel 2016, Microsoft 365
_Boroda_, спасибо. Диаграмма.Тор=Что_то.Тор - а что можно вместо этого что-то, чтобы привязывать к последней пустой ячейке? Нужно все-таки по последней, т.к. когда я копирую большое количество значений на тот лист, то диаграмма перемещается к верхней вставленной ячейке, а не к нижней(((
_Boroda_, спасибо. Диаграмма.Тор=Что_то.Тор - а что можно вместо этого что-то, чтобы привязывать к последней пустой ячейке? Нужно все-таки по последней, т.к. когда я копирую большое количество значений на тот лист, то диаграмма перемещается к верхней вставленной ячейке, а не к нижней((( drugojandrew
Ответить
Сообщение _Boroda_, спасибо. Диаграмма.Тор=Что_то.Тор - а что можно вместо этого что-то, чтобы привязывать к последней пустой ячейке? Нужно все-таки по последней, т.к. когда я копирую большое количество значений на тот лист, то диаграмма перемещается к верхней вставленной ячейке, а не к нижней((( Автор - drugojandrew Дата добавления - 31.08.2015 в 16:53
_Boroda_
Дата: Понедельник, 31.08.2015, 17:02 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация:
6667
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Или [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Target.Offset(Target.Rows.Count).Top
[/vba] или ищем последнюю [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Range("B" & Rows.Count).End(xlUp).Top
[/vba] [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = UsedRange(UsedRange.Count).Top
[/vba]
Или [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Target.Offset(Target.Rows.Count).Top
[/vba] или ищем последнюю [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Range("B" & Rows.Count).End(xlUp).Top
[/vba] [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = UsedRange(UsedRange.Count).Top
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Или [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Target.Offset(Target.Rows.Count).Top
[/vba] или ищем последнюю [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = Range("B" & Rows.Count).End(xlUp).Top
[/vba] [vba]Код
ActiveSheet.Shapes("Диаграмма 1").Top = UsedRange(UsedRange.Count).Top
[/vba] Автор - _Boroda_ Дата добавления - 31.08.2015 в 17:02
drugojandrew
Дата: Понедельник, 31.08.2015, 17:19 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 143
Репутация:
0
±
Замечаний:
0% ±
Excel 2016, Microsoft 365
_Boroda_, спасибо, второй вариант то что надо!
Ответить
Сообщение _Boroda_, спасибо, второй вариант то что надо! Автор - drugojandrew Дата добавления - 31.08.2015 в 17:19