Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 18:31   #1
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию Скрытие и отображение элементов ActiveX по условию

Вот нашел код
Код HTML:
Sub hide()
VBAProject.Лист1.CommandButton1.Visible = False
VBAProject.Лист1.TextBox1.Visible = False
End Sub

Sub unhide()
VBAProject.Лист1.CommandButton1.Visible = True
VBAProject.Лист1.TextBox1.Visible = True
End Sub
Он меня устраивает, только нужно, чтоб он выполнялся по условию: если занчение ячейки "...", тогда что-то скрыть, что-то отобразить. Условий будет три.
Bozhkov вне форума Ответить с цитированием
Старый 04.05.2012, 22:08   #2
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

Друзья, пожалуйста!
Может условия не понятны? Вот, собственно, сам файл. Нужно чтоб в калькуляторе по расчету (желтый сектор) при выбори из списка в Составе удобрений (зеленый сектор):
1. N,P,K - светились все поля ввода;
2. N+P,K - скрывались поле ввода и список под ним для фосфатов (PO4);
3. N+P+K - скрывались поле ввода и список под фосфатом и Калием (K).
Помогите, пожалуйста!
P.S. Пароль на разблокировку листов- 2952432
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 13:08   #3
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

Может так кто подсткажет?
Три макроса.
Код:
Sub NPK1()
VBAProject.Лист2.TextBox19.Visible = True
VBAProject.Лист2.TextBox21.Visible = True
VBAProject.Лист2.ComboBox18.Visible = True
VBAProject.Лист2.ComboBox20.Visible = True
End Sub
Sub NPK2()
VBAProject.Лист2.TextBox19.Visible = True
VBAProject.Лист2.TextBox21.Visible = False
VBAProject.Лист2.ComboBox18.Visible = True
VBAProject.Лист2.ComboBox20.Visible = False
End Sub
Sub NPK3()
VBAProject.Лист2.TextBox19.Visible = False
VBAProject.Лист2.TextBox21.Visible = False
VBAProject.Лист2.ComboBox18.Visible = False
VBAProject.Лист2.ComboBox20.Visible = False
End Sub
Каждый запускается если в определенной ячейке "ИСТИНА"
Если в ячейке BE86 ИСТИНА, то запучкается макрос NPK1, если в BE87 ИСТИНА, то NPK2, и если в BE88 ИСТИНА то NPK3. Значения ячеек зависят от выбранного в списке значения.
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 13:20   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

а может сделать просто

Код:
if [A1] and [B1] and [C1] then
   'hide
endif
и
Код:
if not ([A1] or [B1] or [C1]) then
  'unhide
endif
подставите свои ячейки и обработку отображения в условия и будет вам счастье)
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 05.05.2012 в 13:24.
DiemonStar вне форума Ответить с цитированием
Старый 05.05.2012, 13:48   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Можно так, без If
Код:
Лист2.TextBox19.Visible = [A1] and [B1] and [C1]
И не пишите VBAProject, не нужно. Если код расположен в модуле этого листа, то и "Лист2." не нужно.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 05.05.2012, 15:23   #6
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

а какая должна быть шапка?
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 16:03   #7
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

У меня ничего не получается. Кто-то может написать полный код, чтоб я его вставил и он работал? Названия ячеек и условие для выполнения макросов я написал.
Я не знаю языка програмирования. И прошу написать рабочий код а не способ реализации моей идеи.
Спасибо большое!
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 17:36   #8
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

Может что-то быть с книгой, что макросы автоматически не запускаются, только кнопкой? Вставляю работающие коды с других книг, а в моей они не работают. Только если в редакторе нажать на Run Sub.
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 17:41   #9
Bozhkov
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 26
По умолчанию

И еще, я так понимаю, что если в коде написать [BE86], это тоже самое что"ЕСЛИ(BE86=ИСТИНА;...)"? А то у меня ключивой критерий запуска макроса слово ИСТИНА, а в предложеных вами кодах это слово не фигурирует нигде.
И я так понял, что код обрабатывает сразу три ячейки? У меня три макроса и каждый подвязан под одну ячейку. Если значение ИСТИНА, то макрос запускается. Просто из трех ячеек может только в одной быть ИСТИНА, в остальных двух всегда ЛОЖЬ
Bozhkov вне форума Ответить с цитированием
Старый 05.05.2012, 18:09   #10
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Посмотрел файл - красотища!
Но макросов нет. Так как Вы хотите, чтобы отображение/скрытие контролов происходило по изменению комбобокса, надо составить процедуру обработки этого события и поместить ее в код листа.
Код:
Private Sub ComboBox16_Change()
Select Case ComboBox16.ListIndex
Case 0
    TextBox19.Visible = True
    TextBox21.Visible = True
    ComboBox18.Visible = True
    ComboBox20.Visible = True
Case 1
    TextBox19.Visible = True
    TextBox21.Visible = False
    ComboBox18.Visible = True
    ComboBox20.Visible = False
Case 2
    TextBox19.Visible = False
    TextBox21.Visible = False
    ComboBox18.Visible = False
    ComboBox20.Visible = False
End Select
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие элементов haker270 Общие вопросы Delphi 9 25.04.2012 16:44
Автоматическое скрытие/отображение столбцов по условию staniiislav Microsoft Office Excel 2 27.07.2011 16:28
Скрытие панелей инструментов при открытии и отображение при закрытии документа Василий. Microsoft Office Word 0 23.10.2010 00:41
Скрытие строк по условию MaxxVer Microsoft Office Excel 11 09.04.2010 05:55
Скрытие столбцов по условию snake980 Microsoft Office Excel 6 26.02.2008 16:52