Необходимо показать-скрыть ряд на Диаграмме с помощью чек-бокса. Имеем таблицу данных с нужным столбцом:
Для этого столбца, данные которого нанесены на Диаграмме, делаем на листе с Диаграммой чек-бокс:
Хотелось бы при наличии галочки в чек-боксе Ряд показывать, а при отсутствии галочки в чек-боксе - Ряд скрывать. Попробовал такие варианты:
[vba]
Код
Private Sub CheckBox1_Click() ActiveSheet.[Currency_USD_CAD_Spot].Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba] [vba]
Код
Private Sub CheckBox1_Click() 'Gold / USD
Range("Currency_USD_CAD_Spot").Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba] [vba]
Код
Private Sub CheckBox1_Click() 'Gold / USD
Evaluate("Currency_USD_CAD_Spot").Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba]
где Currency_USD_CAD_Spot - Глобальное имя Диапазона всей таблицы данных. Иными словами взял столбец № 7 из этой таблицы и хотел скрыть/показать на листе самой таблицы. Код подсмотрел у Уокенбаха, но имя диапазона таблицы то у меня Глобальное, и ActiveSheet. наверное и не нужен в коде. Не могу сообразить. Не хватает знаний мат.части. Help кто может!
Необходимо показать-скрыть ряд на Диаграмме с помощью чек-бокса. Имеем таблицу данных с нужным столбцом:
Для этого столбца, данные которого нанесены на Диаграмме, делаем на листе с Диаграммой чек-бокс:
Хотелось бы при наличии галочки в чек-боксе Ряд показывать, а при отсутствии галочки в чек-боксе - Ряд скрывать. Попробовал такие варианты:
[vba]
Код
Private Sub CheckBox1_Click() ActiveSheet.[Currency_USD_CAD_Spot].Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba] [vba]
Код
Private Sub CheckBox1_Click() 'Gold / USD
Range("Currency_USD_CAD_Spot").Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba] [vba]
Код
Private Sub CheckBox1_Click() 'Gold / USD
Evaluate("Currency_USD_CAD_Spot").Columns(7).Hidden = _ Not ActiveSheet.OLEObjects(1).Object.Value End Sub
[/vba]
где Currency_USD_CAD_Spot - Глобальное имя Диапазона всей таблицы данных. Иными словами взял столбец № 7 из этой таблицы и хотел скрыть/показать на листе самой таблицы. Код подсмотрел у Уокенбаха, но имя диапазона таблицы то у меня Глобальное, и ActiveSheet. наверное и не нужен в коде. Не могу сообразить. Не хватает знаний мат.части. Help кто может!Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) If Range("A3") = True Then [Currency_USD_CAD_Spot].Columns(7).Hidden = True Range("A3") = False Else [Currency_USD_CAD_Spot].Columns(7).Hidden = False Range("A3") = True End If End Sub
[/vba] Но что-то оно мне как-то не очень нравится. Приходится записывать в ячейку листа либо True либо False, в зависимости от включение-отключения Ряда. Может кто ещё вариант найдёт, пооптимальнее.
Ну вот, одно решение нашёл. [vba]
Код
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) If Range("A3") = True Then [Currency_USD_CAD_Spot].Columns(7).Hidden = True Range("A3") = False Else [Currency_USD_CAD_Spot].Columns(7).Hidden = False Range("A3") = True End If End Sub
[/vba] Но что-то оно мне как-то не очень нравится. Приходится записывать в ячейку листа либо True либо False, в зависимости от включение-отключения Ряда. Может кто ещё вариант найдёт, пооптимальнее.Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
Сообщение отредактировал Vostok - Вторник, 10.02.2015, 15:49
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) If CheckBox1.Value = True Then [Currency_USD_CAD_Spot].Columns(7).Hidden = True Else [Currency_USD_CAD_Spot].Columns(7).Hidden = False End If End Sub
[/vba] или [vba]
Код
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) [Currency_USD_CAD_Spot].Columns(7).Hidden = CheckBox1.Value End Sub
[/vba]
а если сразу считыать значение checkbox? [vba]
Код
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) If CheckBox1.Value = True Then [Currency_USD_CAD_Spot].Columns(7).Hidden = True Else [Currency_USD_CAD_Spot].Columns(7).Hidden = False End If End Sub
[/vba] или [vba]
Код
Private Sub CheckBox1_Click() Range("A3").Font.Color = RGB(255, 255, 255) [Currency_USD_CAD_Spot].Columns(7).Hidden = CheckBox1.Value End Sub
Варианты-то есть, да вот только времени на рисование данных, диаграммы и чекбокса жалко.
Да это и не нужно. У меня же уже всё нарисовано, и Диаграммы, и чек-боксы. Мне Идея была нужна, так сказать - Направление действий. Вот такое, например:
Это всё что мне было нужно. Хорошее решение. В приведённом то мною примере (от Уокенбаха) всё несколько сложновато и почему то не работает, хотя при первом запуске всё-таки работало. Всем Thanks за Идеи.
Варианты-то есть, да вот только времени на рисование данных, диаграммы и чекбокса жалко.
Да это и не нужно. У меня же уже всё нарисовано, и Диаграммы, и чек-боксы. Мне Идея была нужна, так сказать - Направление действий. Вот такое, например:
Это всё что мне было нужно. Хорошее решение. В приведённом то мною примере (от Уокенбаха) всё несколько сложновато и почему то не работает, хотя при первом запуске всё-таки работало. Всем Thanks за Идеи.Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
Сообщение отредактировал Vostok - Среда, 11.02.2015, 04:44
Ну, скрывать столбцы - это не всегда такая уж хорошая идея.
А другую чтобы показать - нужно на реальном файле макрос писать. Хотя бы на простеньком. А Вы его не предоставили. Поэтому и получили только правку своего же кода. А все почему? А потому, что Вам лениво файлик нарисовать.
Ну, скрывать столбцы - это не всегда такая уж хорошая идея.
А другую чтобы показать - нужно на реальном файле макрос писать. Хотя бы на простеньком. А Вы его не предоставили. Поэтому и получили только правку своего же кода. А все почему? А потому, что Вам лениво файлик нарисовать._Boroda_
Тут другой вопрос возник в ходе этой же темы. Хочу циклом поставить у чек-боксов листа всем True и не получается подставить цифру через переменную в имя CheckBox: [vba]
Код
With Worksheets("Черновик") 'For i=1 To 3 .CheckBox1.Value = True .CheckBox2.Value = True .CheckBox3.Value = True 'Next i End With
[/vba] [moder]Вы доиграетесь скоро. Влеплю по замечанию на каждое прошедшее нарушение - как раз 100% наберется. Какое отношение этот вопрос имеет к теме " Показать/Скрыть ряд на Диаграмме"? Тема закрыта. Нарушение п.5q Правил форума. * Жаль, что вариант(ов?) Бороды в этой теме уже не будет.
Тут другой вопрос возник в ходе этой же темы. Хочу циклом поставить у чек-боксов листа всем True и не получается подставить цифру через переменную в имя CheckBox: [vba]
Код
With Worksheets("Черновик") 'For i=1 To 3 .CheckBox1.Value = True .CheckBox2.Value = True .CheckBox3.Value = True 'Next i End With
[/vba] [moder]Вы доиграетесь скоро. Влеплю по замечанию на каждое прошедшее нарушение - как раз 100% наберется. Какое отношение этот вопрос имеет к теме " Показать/Скрыть ряд на Диаграмме"? Тема закрыта. Нарушение п.5q Правил форума. * Жаль, что вариант(ов?) Бороды в этой теме уже не будет.Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
Сообщение отредактировал Vostok - Среда, 11.02.2015, 08:18