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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 00:57   #1
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
Восклицание Макрос не распознает значение из формулы.

Что имеем:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [H16].Address Then
Select Case Target.Value
Case "скрыть"
Range("6:7").RowHeight = 0
Range("20:21").RowHeight = 14
Case "отобразить"
Range("20:21").RowHeight = 0
Range("6:7").RowHeight = 14

End Select
End If
End Sub
Все очень хорошо работает без кнопки, как и нужно, но только если в ячейку H16 вносить данные вручную. Если в эту же ячейку вставить формулу или выбирать в неё значение из выпадающего списка, ничего не получается.Как можно исправить, что-бы макрос смог определять данные полученные формулами или из списка?
user name вне форума Ответить с цитированием
Старый 01.06.2013, 01:16   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если из списка - должно получаться.
Ну а если формула - ловите по пересчёту.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.06.2013, 01:25   #3
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

В том то и дело, что не получается, автоматически, только если нажимать на кнопочку. А по поводу формулы не совсем понятно. Можно поподробнее.

Последний раз редактировалось user name; 01.06.2013 в 01:27.
user name вне форума Ответить с цитированием
Старый 01.06.2013, 01:45   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Есть событие пересчёта - вот по нему и ловите.
Есть ещё один малоизвестный вариант - ставите невидимый комбобокс, завязанный на эту ячейку с формулой, по его событию делаете дело.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 01.06.2013 в 01:50.
Hugo121 вне форума Ответить с цитированием
Старый 01.06.2013, 07:24   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Пункт 1

user name, выложите на Форуме Excel-книгу со списком, который не вызывает событие "Change".


Пункт 2

Событие, которое будет запускаться при изменении формулы, называется "Calculate". Событие "Calculate" запускается при изменении любой формулы на листе, в котором событие находится.


Пункт 3

Вместо события "Calculate" можно попробовать использовать пользовательскую функцию. В данном случае нужный макрос будет запускаться при изменении не любой формулы на листе, а только при изменении нужной формулы.

Последний раз редактировалось Скрипт; 01.06.2013 в 07:39.
Скрипт вне форума Ответить с цитированием
Старый 01.06.2013, 18:51   #6
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

Вот файлик. Если сможете помочь будет очень хорошо. Очень сильно нужно в работе. Нужно что-бы данные для условия были или из формулы или из списка, но только не вводились вручную.
Вложения
Тип файла: rar Скрытие строк.rar (8.1 Кб, 13 просмотров)
user name вне форума Ответить с цитированием
Старый 01.06.2013, 18:57   #7
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

И еще вот так.
Вложения
Тип файла: zip Скрытие строк 2.zip (12.6 Кб, 9 просмотров)
user name вне форума Ответить с цитированием
Старый 01.06.2013, 20:07   #8
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

user name, на примере выложенных книг напишите, что нужно сделать. Можно на одном примере.

Последний раз редактировалось Скрипт; 01.06.2013 в 20:10.
Скрипт вне форума Ответить с цитированием
Старый 01.06.2013, 21:03   #9
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

Если на примере, то в любой книге если внести в ячейку H16 вручную "скрыть или "отобразить" одни строки скрываются, а другие отображаются и это без кнопок, автоматически, а если эти же самые данные внести в эту же ячейку из списка или если в ней будет формула ничего не работает. Нужно чтобы работало все точно также как если бы данные вносились вручную, только данные нужно вносить из списка или из формулы.

Последний раз редактировалось user name; 01.06.2013 в 22:06.
user name вне форума Ответить с цитированием
Старый 01.06.2013, 21:25   #10
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

user name, вы выложили книги. Напишите примерно так:
в книге "Скрытие строк" на листе таком-то нужно в ячейке такой-то сделать то-то.

У меня не получается сделать то-то.
Скрипт вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в макрос передавать значение из ячеек Excel SashaS Microsoft Office Excel 3 03.03.2012 11:54
VBA макрос придаёт неверное значение ячейке 4istii_listo4ek Microsoft Office Excel 4 15.10.2010 21:39
Не распознает make. Lunex.08 Qt и кроссплатформенное программирование С/С++ 5 08.08.2010 16:25
макрос изменения формулы в ячейке по назначеной клавише sdlm Microsoft Office Excel 2 25.12.2009 13:53
Дабавление формулы СУММ через макрос Neo007 Microsoft Office Excel 6 23.10.2008 14:37