Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 21:27:41

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Событие по выбору элемента из Combobox
Страниц: [1]   Вниз
Печать
Автор Тема: Событие по выбору элемента из Combobox  (Прочитано 18324 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LL
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 25


Просмотр профиля E-mail
« : 28.10.2012, 01:06:10 »

Вещь вроде как бы элементарная. Но вот уже несколько дней прочесываю интернет и не могу найти и понять элементарный синтаксис описания события выбора элемента из ComboBox.
Задача: при выборе элемента отобразить определенный именованный range, имя которого соответсвуеют listindex+1 (с учетом того что первый элемент в combobox имеет индекс = 0), т.е. при выборе первого элемента из списка должен отобразиться диапазон с именем "1" (т.к. "1"=0+1),

мой код

For item = 0 To Worksheets("Лист1").ComboBox1.ListIndex
  If sheets("Лист1").ComboBox1.Select = True Then
       
 Range("_" & Worksheets("Лист1").ComboBox1.ListIndex(item) + 1).EntireColumn.Hidden = False

 End If
 Next

Как понимаю проблема во второй строчке. HELP PLEASE.
При этом вообще выдает "Внедрить combobox....", но я его вроде определила как  sheets("Лист1").ComboBox1 т.к. он не форме, а на листе. В замешательстве
Записан
LL
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 25


Просмотр профиля E-mail
« Ответ #1 : 28.10.2012, 01:32:41 »

)))))) Спасибо форум. Прочитывая свой вопрос, нашла масленное масло и решила задачу самостоятельно. Может кому пригодиться.

Ответ:

Dim item2 As Integer
For item2 = 0 To 25
If Sheets("Лист1").ComboBox1.ListIndex = item2 Then

 Range("_" & item2 + 1).EntireColumn.Hidden = False
 End If
 Next

Ну правда мне не очень нравится произвольно заданнное item2 до 25. как бы по количеству элементов combox задать.. To ListIndex опять про масло получится.
Записан
kuklp
Старожил
****

Репутация: +32/-0
Офлайн Офлайн

Сообщений: 438

4190413
Просмотр профиля E-mail
« Ответ #2 : 28.10.2012, 04:23:47 »

Что-то Вы перемудрили. Скрываем строки и столбцы(в модуль листа):
Код: (vb)
Private Sub ComboBox1_Change()
    On Error Resume Next
    Me.Columns.Hidden = 0
    Me.Rows.Hidden = 0
    Me.Columns(ComboBox1.ListIndex + 1).Hidden = True 'по номеру выбранного значения
    Me.Range(ComboBox1).EntireRow.Hidden = True 'по имени диапазона в списке
End Sub
Записан

kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
kuklp
Старожил
****

Репутация: +32/-0
Офлайн Офлайн

Сообщений: 438

4190413
Просмотр профиля E-mail
« Ответ #3 : 28.10.2012, 04:31:48 »

>> как бы по количеству элементов combox задать..
На будущее, чтоб не задавать произвольное к-во, есть свойство:
ComboBox1.ListCount
Записан

kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
LL
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 25


Просмотр профиля E-mail
« Ответ #4 : 06.02.2013, 02:32:49 »

Что-то Вы перемудрили. Скрываем строки и столбцы(в модуль листа):
Код: (vb)
Private Sub ComboBox1_Change()
    On Error Resume Next
    Me.Columns.Hidden = 0
    Me.Rows.Hidden = 0
    Me.Columns(ComboBox1.ListIndex + 1).Hidden = True 'по номеру выбранного значения
    Me.Range(ComboBox1).EntireRow.Hidden = True 'по имени диапазона в списке
End Sub


Спасибо! Я только сейчас увидела этот ответ. Если не затруднит поделитесь теорией: что значит эта Me. и Ме.Rows.Hidden - значит что нет скрытых строк? а hidden=true - это скрытие?
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #5 : 07.02.2013, 09:36:07 »

1. Ме - указывает на принадлежность к родителю (в данном случае к листу).
2. Всё верно: hidden=true (Скрыть? - Да), hidden=False (Скрыть? - Нет)
Записан
LL
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 25


Просмотр профиля E-mail
« Ответ #6 : 08.02.2013, 02:21:11 »

1. Ме - указывает на принадлежность к родителю (в данном случае к листу).
2. Всё верно: hidden=true (Скрыть? - Да), hidden=False (Скрыть? - Нет)

Спасибо!
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru