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

Вход

Регистрация

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

 

= Мир MS Excel/Точечная диаграмма - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Точечная диаграмма
_Boroda_ Дата: Пятница, 19.04.2013, 15:28 | Сообщение № 21
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Поскольку Александра SM со вторника на форуме нет, позволю себе подкорректировать его прекрасное творение согласно новым хотелкам
1. Код (исходный текст) на втором листе вообще убейте весь - в данном случае изменение диаграммы происходит по изменению данных на Лист1
2. В коде на Лист1 в строке
[vba]
Код
Set Chart1 = Me.ChartObjects(1).Chart
[/vba]
замените "Me" на "Лист2"
получится
[vba]
Код
Set Chart1 = Лист2.ChartObjects(1).Chart
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПоскольку Александра SM со вторника на форуме нет, позволю себе подкорректировать его прекрасное творение согласно новым хотелкам
1. Код (исходный текст) на втором листе вообще убейте весь - в данном случае изменение диаграммы происходит по изменению данных на Лист1
2. В коде на Лист1 в строке
[vba]
Код
Set Chart1 = Me.ChartObjects(1).Chart
[/vba]
замените "Me" на "Лист2"
получится
[vba]
Код
Set Chart1 = Лист2.ChartObjects(1).Chart
[/vba]

Автор - _Boroda_
Дата добавления - 19.04.2013 в 15:28
NIC Дата: Суббота, 20.04.2013, 12:39 | Сообщение № 22
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, на втором листе изменяется, а вот на первом теперь перестала! Может можно написать что-то универсальное для всей книги, чтобы куда не вставь, везде обновлялась!????
 
Ответить
СообщениеСпасибо, на втором листе изменяется, а вот на первом теперь перестала! Может можно написать что-то универсальное для всей книги, чтобы куда не вставь, везде обновлялась!????

Автор - NIC
Дата добавления - 20.04.2013 в 12:39
_Boroda_ Дата: Суббота, 20.04.2013, 13:27 | Сообщение № 23
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Ловите, но это не правильно - на листах могут быть еще диаграммы. И вообще - проще определиться с листом для диаграммы, а потом уже в макросе его прописать
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim Chart1 As Chart, Series1 As Series, RngX As Range, RngY As Range
     Dim ChartName As String, Prompt As String, S() As String
     Dim i
     For i = 1 To Worksheets.Count
     On Error Resume Next
         Set Chart1 = Worksheets(i).ChartObjects(1).Chart
         On Error GoTo 0
         If Chart1 Is Nothing Then GoTo A
         With Chart1
             Set Series1 = .SeriesCollection(1)
             S = Split(Series1.Formula, ",")
             Set RngX = Range(S(1))
             Set RngY = Range(S(2))
             If Not Intersect(Target, Union(RngX, RngY)) Is Nothing Then
                 .Axes(xlCategory).MinimumScale = WorksheetFunction.Min(RngX)
                 .Axes(xlValue).MinimumScale = WorksheetFunction.Min(RngY)
                 .Axes(xlCategory).MaximumScale = WorksheetFunction.Max(RngX)
                 .Axes(xlValue).MaximumScale = WorksheetFunction.Max(RngY)
             End If
         End With
A:
     Next i
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЛовите, но это не правильно - на листах могут быть еще диаграммы. И вообще - проще определиться с листом для диаграммы, а потом уже в макросе его прописать
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim Chart1 As Chart, Series1 As Series, RngX As Range, RngY As Range
     Dim ChartName As String, Prompt As String, S() As String
     Dim i
     For i = 1 To Worksheets.Count
     On Error Resume Next
         Set Chart1 = Worksheets(i).ChartObjects(1).Chart
         On Error GoTo 0
         If Chart1 Is Nothing Then GoTo A
         With Chart1
             Set Series1 = .SeriesCollection(1)
             S = Split(Series1.Formula, ",")
             Set RngX = Range(S(1))
             Set RngY = Range(S(2))
             If Not Intersect(Target, Union(RngX, RngY)) Is Nothing Then
                 .Axes(xlCategory).MinimumScale = WorksheetFunction.Min(RngX)
                 .Axes(xlValue).MinimumScale = WorksheetFunction.Min(RngY)
                 .Axes(xlCategory).MaximumScale = WorksheetFunction.Max(RngX)
                 .Axes(xlValue).MaximumScale = WorksheetFunction.Max(RngY)
             End If
         End With
A:
     Next i
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.04.2013 в 13:27
NIC Дата: Суббота, 20.04.2013, 14:54 | Сообщение № 24
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Цитата (_Boroda_)
но это не правильно - на листах могут быть еще диаграммы

Так она и есть, ерунда получилась!!! а куда в код написать все названия листов в которые я скопирую исходную диаграмму, чтобы они менялись вместе с исходной!???
 
Ответить
Сообщение
Цитата (_Boroda_)
но это не правильно - на листах могут быть еще диаграммы

Так она и есть, ерунда получилась!!! а куда в код написать все названия листов в которые я скопирую исходную диаграмму, чтобы они менялись вместе с исходной!???

Автор - NIC
Дата добавления - 20.04.2013 в 14:54
NIC Дата: Суббота, 20.04.2013, 16:49 | Сообщение № 25
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Прилипил файл, хотелось бы чтобы диаграммы на "Листе1" и на "Листе2" (4 одинаковые диаграммы) изменяли начало и конец в зависимости от значений! Пока удалось добиться обновления либо на 1-ом листе либо на 2-ом! ко всей книге применить нельзя так как будут другие графики!
Помогите пожалуйста, оч надо!
Заранее спасибО!!!!
К сообщению приложен файл: -2-1-.xls (74.5 Kb)
 
Ответить
СообщениеПрилипил файл, хотелось бы чтобы диаграммы на "Листе1" и на "Листе2" (4 одинаковые диаграммы) изменяли начало и конец в зависимости от значений! Пока удалось добиться обновления либо на 1-ом листе либо на 2-ом! ко всей книге применить нельзя так как будут другие графики!
Помогите пожалуйста, оч надо!
Заранее спасибО!!!!

Автор - NIC
Дата добавления - 20.04.2013 в 16:49
SM Дата: Суббота, 20.04.2013, 17:23 | Сообщение № 26
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
NIC, Вы что-то не договариваете smile .
Поясните, пожалуйста, зачем Вам "4 одинаковые диаграммы" с 1-им единственным набором исходных ?


Excel изощрён, но не злонамерен
 
Ответить
СообщениеNIC, Вы что-то не договариваете smile .
Поясните, пожалуйста, зачем Вам "4 одинаковые диаграммы" с 1-им единственным набором исходных ?

Автор - SM
Дата добавления - 20.04.2013 в 17:23
NIC Дата: Суббота, 20.04.2013, 19:47 | Сообщение № 27
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Для оформления протокола, долго объяснять, просто там бывают три варианта, для этого и три диаграммы на одном листе, а на первом вносятся данные! ну типо вот для этого!!! Это реально сделать, а то я с VBA не дружу!??? biggrin
 
Ответить
СообщениеДля оформления протокола, долго объяснять, просто там бывают три варианта, для этого и три диаграммы на одном листе, а на первом вносятся данные! ну типо вот для этого!!! Это реально сделать, а то я с VBA не дружу!??? biggrin

Автор - NIC
Дата добавления - 20.04.2013 в 19:47
SM Дата: Воскресенье, 21.04.2013, 00:04 | Сообщение № 28
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Цитата (NIC)
Это реально сделать ?

Реалити-шоу:
К сообщению приложен файл: Charts1234.xls (90.5 Kb)


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Цитата (NIC)
Это реально сделать ?

Реалити-шоу:

Автор - SM
Дата добавления - 21.04.2013 в 00:04
NIC Дата: Воскресенье, 21.04.2013, 21:26 | Сообщение № 29
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Супер, получилось! Но вот только беда, этот файл был для примера, а в моём, который я не могу, к сожалению, приклеить, что-то не выходит "каменный цветок" там присутствует 16 диаграмм, 4 раза по четыре одинаковые, не хотят тут меняться, может ли это быть из-за одинакового имени диаграмм??? на одном листе все три диаграммы имеют одно название! или может я что-то не дописал, где-то?
СПАСИБО!!!


Сообщение отредактировал NIC - Воскресенье, 21.04.2013, 21:27
 
Ответить
СообщениеСупер, получилось! Но вот только беда, этот файл был для примера, а в моём, который я не могу, к сожалению, приклеить, что-то не выходит "каменный цветок" там присутствует 16 диаграмм, 4 раза по четыре одинаковые, не хотят тут меняться, может ли это быть из-за одинакового имени диаграмм??? на одном листе все три диаграммы имеют одно название! или может я что-то не дописал, где-то?
СПАСИБО!!!

Автор - NIC
Дата добавления - 21.04.2013 в 21:26
NIC Дата: Воскресенье, 21.04.2013, 21:29 | Сообщение № 30
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

Извините, файл только с поддержкой макросов, 97-2003 2,5МБ весит!!!

Вот блин!!! а с макросами не лепится!(((

Только так!!!


Сообщение отредактировал NIC - Воскресенье, 21.04.2013, 21:37
 
Ответить
СообщениеИзвините, файл только с поддержкой макросов, 97-2003 2,5МБ весит!!!

Вот блин!!! а с макросами не лепится!(((

Только так!!!

Автор - NIC
Дата добавления - 21.04.2013 в 21:29
SM Дата: Воскресенье, 21.04.2013, 22:22 | Сообщение № 31
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Цитата (NIC)
может ли это быть из-за одинакового имени диаграмм??? на одном листе все три диаграммы имеют одно название!

Да, на одном листе имена диаграмм должны быть разными.
Подправьте код:
[vba]
Код
    ReDim ChartArray(1 To 4)
     For J = 1 To 4
         Set ChartArray(J) = New MyChartObj
     Next
     On Error Resume Next
     Set ChartArray(1).NewChartObj = Sheets("Лист1").ChartObjects("Диаграмма 1")
     . . . . . . . . . . . . .
[/vba]
4 - замените - на 16.
Скопировав, добавьте еще 12 строк Set ChartAr.... ,
и замените на свои названия листов и диаграмм.


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Цитата (NIC)
может ли это быть из-за одинакового имени диаграмм??? на одном листе все три диаграммы имеют одно название!

Да, на одном листе имена диаграмм должны быть разными.
Подправьте код:
[vba]
Код
    ReDim ChartArray(1 To 4)
     For J = 1 To 4
         Set ChartArray(J) = New MyChartObj
     Next
     On Error Resume Next
     Set ChartArray(1).NewChartObj = Sheets("Лист1").ChartObjects("Диаграмма 1")
     . . . . . . . . . . . . .
[/vba]
4 - замените - на 16.
Скопировав, добавьте еще 12 строк Set ChartAr.... ,
и замените на свои названия листов и диаграмм.

Автор - SM
Дата добавления - 21.04.2013 в 22:22
SM Дата: Воскресенье, 21.04.2013, 23:53 | Сообщение № 32
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
NIC, посмотрел Ваш файл - несоответсвие имён листов, а имена диаграмм одинаковые.
И ещё, в модуль 'Эта книга' нужно вставить
[vba]
Код
Private Sub Workbook_Open()
      Call ArrayOfChart
End Sub
[/vba]
для автозапуска макроса при открытии файла книги.


Excel изощрён, но не злонамерен

Сообщение отредактировал SM - Воскресенье, 21.04.2013, 23:53
 
Ответить
СообщениеNIC, посмотрел Ваш файл - несоответсвие имён листов, а имена диаграмм одинаковые.
И ещё, в модуль 'Эта книга' нужно вставить
[vba]
Код
Private Sub Workbook_Open()
      Call ArrayOfChart
End Sub
[/vba]
для автозапуска макроса при открытии файла книги.

Автор - SM
Дата добавления - 21.04.2013 в 23:53
NIC Дата: Понедельник, 22.04.2013, 00:12 | Сообщение № 33
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

В смысле???
Цитата (SM)
несоответсвие имён листов

Имя должно содержать и номер листа и само имя??? (для "Лист1 (Гр.№1)" должно быть
Код
Set ChartArray(1).NewChartObj = Sheets("Лист1(Гр.№1)")....

или ??? непонял немного! просто имена листов будут меняться!!!
 
Ответить
СообщениеВ смысле???
Цитата (SM)
несоответсвие имён листов

Имя должно содержать и номер листа и само имя??? (для "Лист1 (Гр.№1)" должно быть
Код
Set ChartArray(1).NewChartObj = Sheets("Лист1(Гр.№1)")....

или ??? непонял немного! просто имена листов будут меняться!!!

Автор - NIC
Дата добавления - 22.04.2013 в 00:12
SM Дата: Понедельник, 22.04.2013, 00:50 | Сообщение № 34
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Нет, вот так:
[vba]
Код
Set ChartArray(1).NewChartObj = Sheets("Гр.№1")...
[/vba]
Поэкспериментируйте с переименованием, только (сначала) не на своём большом, а на предыдущем, маленьком файле.
Переименовали, изменили текст кода, и запустите макрос 'ArrayOfChart'


Excel изощрён, но не злонамерен

Сообщение отредактировал SM - Понедельник, 22.04.2013, 00:51
 
Ответить
СообщениеНет, вот так:
[vba]
Код
Set ChartArray(1).NewChartObj = Sheets("Гр.№1")...
[/vba]
Поэкспериментируйте с переименованием, только (сначала) не на своём большом, а на предыдущем, маленьком файле.
Переименовали, изменили текст кода, и запустите макрос 'ArrayOfChart'

Автор - SM
Дата добавления - 22.04.2013 в 00:50
SM Дата: Понедельник, 22.04.2013, 01:10 | Сообщение № 35
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Цитата (NIC)
или ??? непонял немного! просто имена листов будут меняться!!!

В этом случае лучше ссылаться не на Имя_листа (Name), а на Имя_модуля_листа (CodeName),
в Вашем большом файле:
Имя_листа == "Гр.№1"
Имя_модуля_листа == Лист1
Тогда строка кода должна быть такой:
[vba]
Код
Set ChartArray(1).NewChartObj = Лист1.ChartObjects("Диаграмма 8")
[/vba]


Excel изощрён, но не злонамерен
 
Ответить
Сообщение
Цитата (NIC)
или ??? непонял немного! просто имена листов будут меняться!!!

В этом случае лучше ссылаться не на Имя_листа (Name), а на Имя_модуля_листа (CodeName),
в Вашем большом файле:
Имя_листа == "Гр.№1"
Имя_модуля_листа == Лист1
Тогда строка кода должна быть такой:
[vba]
Код
Set ChartArray(1).NewChartObj = Лист1.ChartObjects("Диаграмма 8")
[/vba]

Автор - SM
Дата добавления - 22.04.2013 в 01:10
SM Дата: Понедельник, 22.04.2013, 01:40 | Сообщение № 36
Группа: Друзья
Ранг: Участник
Сообщений: 64
Репутация: 59 ±
Замечаний: 0% ±

2003
Вот.
К сообщению приложен файл: 12345-Charts.xls (83.0 Kb)


Excel изощрён, но не злонамерен
 
Ответить
СообщениеВот.

Автор - SM
Дата добавления - 22.04.2013 в 01:40
NIC Дата: Понедельник, 22.04.2013, 02:13 | Сообщение № 37
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 0% ±

ВСЁ суПЕР!!! Спасибо большое за помощь!!! Осталось разобраться что значат все записи в макросе, а то так сам никогда не научусь их писать! СПАСИБО!
 
Ответить
СообщениеВСЁ суПЕР!!! Спасибо большое за помощь!!! Осталось разобраться что значат все записи в макросе, а то так сам никогда не научусь их писать! СПАСИБО!

Автор - NIC
Дата добавления - 22.04.2013 в 02:13
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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