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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2010, 12:27   #1
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию Скрытие линии в зависимости от условий

Подскажите, пожалуйста, возможно ли сделать такое.

При выборе 1 в ячейке С4 (см. приложенный файл) прячутся в линии с 9 по 15, при выборе 4 в ячейке С4 прячутся линии с 12 по 15, а при 8 - остаются все.
Вложения
Тип файла: rar example.rar (3.7 Кб, 11 просмотров)
Brucebelg вне форума Ответить с цитированием
Старый 19.05.2010, 12:50   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = [c3].Address Then
        ' отображаем все строки
        ActiveSheet.UsedRange.EntireRow.Hidden = False
        Select Case Target
                ' скрываем только определённые строки
            Case 1: Range("9:15").EntireRow.Hidden = True
            Case 4: Range("12:15").EntireRow.Hidden = True
            Case Else:    ' ничего не делаем
        End Select
    End If
End Sub
Пример в файле: http://excelvba.ru/XL_Files/Sample__...__14-50-35.zip
EducatedFool вне форума Ответить с цитированием
Старый 19.05.2010, 12:53   #3
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Или так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 And Target.Row = 3 Then
        Range(CStr(8 + Target.Value) + ":15").RowHeight = 0
        Range("8:" + CStr(7 + Target.Value)).RowHeight = 14
    End If
End Sub
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 19.05.2010, 13:13   #4
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

п'емного благода'ен
Brucebelg вне форума Ответить с цитированием
Старый 19.05.2010, 13:30   #5
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Прошу прощения, недоработка - при 8 блоках пропадает 16-я линия.
Вот так будет лучше:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 And Target.Row = 3 Then
        Range(CStr(IIf(Target.Value < 8, 8 + Target.Value, 15)) + ":15").RowHeight = 0
        Range("8:" + CStr(7 + Target.Value)).RowHeight = 14
    End If
End Sub
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 19.05.2010, 14:00   #6
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

Изменил слегка диапазоны и ячейки и вставил в свой реальный файл. Не работает Может нужно как-то активировать? Извините за дурацкие вопросы ...
Brucebelg вне форума Ответить с цитированием
Старый 19.05.2010, 14:04   #7
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

Более того, закрыл окно с программой в данном выше файле в режиме вижуалбейзика и больше не могу его открыть.Как его вернуть обратно? Спасибо
Brucebelg вне форума Ответить с цитированием
Старый 19.05.2010, 14:27   #8
Brucebelg
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 61
По умолчанию

Все заработало, спасибо
Brucebelg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Оптимизация 2х условий в цикле Lime Помощь студентам 2 01.10.2009 21:58
Настройка условий Combobox ruavia3 Microsoft Office Excel 2 29.05.2009 09:33
Сообщение о выполнении условий. sergiksergik Microsoft Office Excel 8 23.05.2009 20:32
Вопрос на тему условий Richmond_87 Паскаль, Turbo Pascal, PascalABC.NET 1 08.01.2009 16:35
как изменять цвет ячейки в зависимости от условий ? Витёк Microsoft Office Excel 2 19.06.2007 13:10