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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2013, 17:17   #1
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию Скрыть строки макросом

Всем привет. Есть идея, не могу реализовать. При значении ячейки F5=1 должны скрыться определенные строки, а при значении F5=2 показаться скрытые и скрыться другие. Я не силен в VBA. Кому-то задание покажется пустяком, но у меня не получается.
Private Sub F5_Change()
If F5 =1 Then
Rows("11:20").Select
Range("E11").Activate
Selection.EntireRow.Hidden = True
End If
End Sub
Пробовал перед F5 добавить название листа, но код краснеет, видимо неправильно. Прошу помочь.
Вадим12091965 вне форума Ответить с цитированием
Старый 19.04.2013, 17:51   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Воспользоваться поиском — религия не позволяет?
http://excelvba.ru/code/ConditionalRowsDeleting

Среди вариантов макроса, изложенных в статье и комментах,
есть и в точности то, что вам нужно.
EducatedFool вне форума Ответить с цитированием
Старый 20.04.2013, 12:05   #3
Вадим12091965
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 143
По умолчанию

Спасибо за подсказку. Сделал рабочий вариант:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F5") = 1 Then
Rows("11:20").Select
Range("E11").Activate
Selection.EntireRow.Hidden = True
Else
Rows("11:20").Select
Range("E11").Activate
Selection.EntireRow.Hidden = False
End If
End Sub
Мне нужно добавить условие:
Если F5=2, то скрываются строки 9, 10, 15-20; иначе - показываются.
Если F5=3, то скрываются строки 9, 10, 17-20; иначе - показываются.
Если F5=4, то скрываются строки 9, 10, 19-20; иначе - показываются.
Если F5=5, то скрываются строки 9, 10; иначе - показываются.
И здесь я встрял. Может добавите хотя-бы одно условие, а дальше я по аналогии разберусь. Заранее благодарен.
Вадим12091965 вне форума Ответить с цитированием
Старый 20.04.2013, 12:41   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

видимо, так:
Код:
rows(9).resize(2).hidden = [f5]=5
rows(15).resize(6).hidden = false
if [f5] > 1 and [f5] < 5 then rows(13+[f5]*2).resize(5-[f5]).hidden = true
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть строки St007 Microsoft Office Excel 7 06.04.2012 12:44
Скрыть ненужные строки Dsn Microsoft Office Excel 4 06.06.2011 10:04
вставить строки макросом horpenst Microsoft Office Excel 2 30.03.2011 10:53
скрыть макрос макросом.. npocmop Microsoft Office Excel 10 07.11.2010 12:13
Скрыть пустые строчки макросом kzld Microsoft Office Excel 2 27.05.2010 06:52