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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 21:42   #11
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

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

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

user name, а какая у вас версия программы "Excel" - 2003, 2010 или другая?
Скрипт вне форума Ответить с цитированием
Старый 01.06.2013, 21:58   #13
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

Дома 2003-ий, а на работе 2010-ий, книга ведет себя одинаково в разных версиях.
user name вне форума Ответить с цитированием
Старый 01.06.2013, 22:19   #14
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

user name, в программе "Excel" есть разные виды списков. Я вставил в ячейку "H16" список следующим образом ("Excel 2003"):
Данные - Проверка... - вкладка Параметры - Тип данных: "Список" - в поле Источник вручную напечатал через точку с запятой данные - OK.
Вложения
Тип файла: zip Скрытие строк_1.zip (7.0 Кб, 8 просмотров)
Скрипт вне форума Ответить с цитированием
Старый 01.06.2013, 22:25   #15
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

Действительно работает. Отлично! Спасибо огромное! А как быть с формулой?(равно другой ячейке, в которую вносим те же "скрыть или "отобразить") Нельзя как-нибудь подправить код, что бы и с формулой работало. Хотелось бы на Листе2, в скрытую ячейку внести =Лист1!H16 и на Листе2 (соответственно на Листе2 прописать условия) тоже скрылись бы ненужные строки, а отобразились нужные. Это возможно?

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

user name, лучше внесите изменения в Excel-книгу и на основе книги поясните, что нужно. А то представлять то, что вы хотите, сложно.
Скрипт вне форума Ответить с цитированием
Старый 01.06.2013, 23:16   #17
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

Хотелось бы на Листе2, в ячейку С11 внести =Лист1!H16 и на Листе2 тоже скрылись бы ненужные строки, а отобразились нужные. Это возможно?
Вложения
Тип файла: zip Скрытие строк_1.zip (8.9 Кб, 7 просмотров)
user name вне форума Ответить с цитированием
Старый 02.06.2013, 00:52   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В данном случае достаточно обрабатывать событие первого листа:
Код:
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
            With Sheets(2)
                .Range("7:9").RowHeight = 0
                .Range("14:16").RowHeight = 14
            End With
        Case "отобразить"
            Range("20:21").RowHeight = 0
            Range("6:7").RowHeight = 14
            With Sheets(2)
                .Range("14:16").RowHeight = 0
                .Range("7:9").RowHeight = 14
            End With
        End Select
    End If
End Sub
Зачем усложнять?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.06.2013, 01:59   #19
user name
Пользователь
 
Регистрация: 30.05.2013
Сообщений: 23
По умолчанию

А если еще и на третьем листе нужно скрыть/отобразить строки как это должно выглядеть?И что нужно изменить, если, допустим лист будет называться не Лист2, а "Расчет"? Прошу меня извинить за глупые вопросы.
user name вне форума Ответить с цитированием
Старый 02.06.2013, 07:18   #20
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

user name, на листе "Лист2" в ячейке "C11" обязательно нужен текст "скрыть/отобразить"? Можно же только на одном листе из списка выбирать нужный пункт и макрос будет применяться к нужным листам.

Последний раз редактировалось Скрипт; 02.06.2013 в 07:41.
Скрипт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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