Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скрыть различные строки при различных значениях ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть различные строки при различных значениях ячейки (Макросы Sub)
Скрыть различные строки при различных значениях ячейки
futher Дата: Четверг, 03.10.2013, 19:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Всем доброго времени суток!
Прошу помощи в следующем вопросе:
Необходимо в зависимости от значения заданной ячейки (выпадающий список) скрывать те или иные строки. Попробую показать в виде формулы, в них по крайней мере хоть что-то понимаю, в отличии от макросов, но средствами Excel поставленной задачи добиться не получится, нужен именно макрос.
Итак, смотрим вложенный файл:
В ячейке С14 имеем выпадающий список, в котором 5 возможных значений:
1. ЕСЛИ(С14="ВЫБЕРИ ИЗ ВЫПАДАЮЩЕГО СПИСКА";[скрыть строки с 24 по 31];[смотри пункт 2])
2. ЕСЛИ(С14="договор 1";[скрыть строки с 26 по 31];[смотри пункт 3])
3. ЕСЛИ(С14="договор 2";[скрыть строки с 24 по 25 и с 28 по 31];[смотри пункт 4])
4. ЕСЛИ(С14="договор 3";[скрыть строки с 24 по 27 и с 30 по 31];[смотри пункт 5])
5. ЕСЛИ(С14="договор 4";[скрыть строки с 24 по 29];[вроде всё])

Буду крайне признателен за помощь, ибо мучаю этот вопрос четвёртый день)
К сообщению приложен файл: __.rar (1.8 Kb)


Сообщение отредактировал futher - Четверг, 03.10.2013, 19:27
 
Ответить
СообщениеВсем доброго времени суток!
Прошу помощи в следующем вопросе:
Необходимо в зависимости от значения заданной ячейки (выпадающий список) скрывать те или иные строки. Попробую показать в виде формулы, в них по крайней мере хоть что-то понимаю, в отличии от макросов, но средствами Excel поставленной задачи добиться не получится, нужен именно макрос.
Итак, смотрим вложенный файл:
В ячейке С14 имеем выпадающий список, в котором 5 возможных значений:
1. ЕСЛИ(С14="ВЫБЕРИ ИЗ ВЫПАДАЮЩЕГО СПИСКА";[скрыть строки с 24 по 31];[смотри пункт 2])
2. ЕСЛИ(С14="договор 1";[скрыть строки с 26 по 31];[смотри пункт 3])
3. ЕСЛИ(С14="договор 2";[скрыть строки с 24 по 25 и с 28 по 31];[смотри пункт 4])
4. ЕСЛИ(С14="договор 3";[скрыть строки с 24 по 27 и с 30 по 31];[смотри пункт 5])
5. ЕСЛИ(С14="договор 4";[скрыть строки с 24 по 29];[вроде всё])

Буду крайне признателен за помощь, ибо мучаю этот вопрос четвёртый день)

Автор - futher
Дата добавления - 03.10.2013 в 19:26
RAN Дата: Четверг, 03.10.2013, 19:33 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Не надо мучаться.
Надо записать рекордером вышеописанные действия.
К полученному макросу добавить ваши ЕСЛИ (для VBA по аглицки - If).
А ежели и дальше никак - тогда спрашивайте.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНе надо мучаться.
Надо записать рекордером вышеописанные действия.
К полученному макросу добавить ваши ЕСЛИ (для VBA по аглицки - If).
А ежели и дальше никак - тогда спрашивайте.

Автор - RAN
Дата добавления - 03.10.2013 в 19:33
SkyPro Дата: Четверг, 03.10.2013, 20:04 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
В модуль листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c14]) Is Nothing Then
     Select Case [c14].Value
      
         Case "ВЫБЕРИ ИЗ ВЫПАДАЮЩЕГО СПИСКА"
             Rows("24:31").Hidden = True
              
         Case "договор 1"
             Rows("24:31").Hidden = False
             Rows("26:31").Hidden = True
              
         Case "договор 2"
             Rows("24:31").Hidden = False
             Rows("24:25").Hidden = True
             Rows("28:31").Hidden = True
              
         Case "договор 3"
             Rows("24:31").Hidden = False
             Rows("24:37").Hidden = True
             Rows("30:31").Hidden = True
              
         Case "договор 4"
             Rows("24:31").Hidden = False
             Rows("24:29").Hidden = True
             Rows("24:31").Hidden = False
              
     End Select
End If
End Sub
[/vba]


skypro1111@gmail.com
 
Ответить
СообщениеВ модуль листа:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c14]) Is Nothing Then
     Select Case [c14].Value
      
         Case "ВЫБЕРИ ИЗ ВЫПАДАЮЩЕГО СПИСКА"
             Rows("24:31").Hidden = True
              
         Case "договор 1"
             Rows("24:31").Hidden = False
             Rows("26:31").Hidden = True
              
         Case "договор 2"
             Rows("24:31").Hidden = False
             Rows("24:25").Hidden = True
             Rows("28:31").Hidden = True
              
         Case "договор 3"
             Rows("24:31").Hidden = False
             Rows("24:37").Hidden = True
             Rows("30:31").Hidden = True
              
         Case "договор 4"
             Rows("24:31").Hidden = False
             Rows("24:29").Hidden = True
             Rows("24:31").Hidden = False
              
     End Select
End If
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 03.10.2013 в 20:04
Wasilich Дата: Четверг, 03.10.2013, 20:29 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Не понятно, почему надо скрывать не нужные строки, если можно отображать нужные.
К сообщению приложен файл: ___.xls (24.5 Kb)


Сообщение отредактировал Wasilic - Четверг, 03.10.2013, 20:32
 
Ответить
СообщениеНе понятно, почему надо скрывать не нужные строки, если можно отображать нужные.

Автор - Wasilich
Дата добавления - 03.10.2013 в 20:29
futher Дата: Четверг, 03.10.2013, 23:51 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 20% ±

Спасибо всем Вам огромное за внимание к моему вопросу!
Рассмотрел все три предложенных способа, второй, предложенный
SkyPro показался мне наиболее просто применимым (ибо для чайника - готовое решение это то что нужно).
Немного обработал напильником (небольшая ошибка в нумерации строк была), и всё заработало как часы hands
Заодно немного повысил свой околонулевой скиллс - теперь я знаю что такое модуль листа :D

PS: (сорь за оффтоп) Мне интересно не только и не столько решить конкретный вопрос из этого топика, но так же и разобраться в различных операторах и командах. Не посоветуете ли какую-нить литературу, чтоб доступным языком было написано, с примерами, для начинающих, мало знакомых даже с терминологией?
К сообщению приложен файл: 7928260.rar (7.0 Kb)
 
Ответить
СообщениеСпасибо всем Вам огромное за внимание к моему вопросу!
Рассмотрел все три предложенных способа, второй, предложенный
SkyPro показался мне наиболее просто применимым (ибо для чайника - готовое решение это то что нужно).
Немного обработал напильником (небольшая ошибка в нумерации строк была), и всё заработало как часы hands
Заодно немного повысил свой околонулевой скиллс - теперь я знаю что такое модуль листа :D

PS: (сорь за оффтоп) Мне интересно не только и не столько решить конкретный вопрос из этого топика, но так же и разобраться в различных операторах и командах. Не посоветуете ли какую-нить литературу, чтоб доступным языком было написано, с примерами, для начинающих, мало знакомых даже с терминологией?

Автор - futher
Дата добавления - 03.10.2013 в 23:51
Постовой Дата: Среда, 18.12.2013, 17:37 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Уважаемые светилы может и мне поможите?
1)Допустим есть 4 столбца,
2)столбец "B" в котором есть 5 имен;
3)столбец "D" отображает месяц покупки;
Условие мне необходимо выбрав имя из списка (Ячейка G3) и интересующий период (I3) нажав кнопку "отчет" получить отфильтрованные строки а при нажатии кнопки "печать" получить распечатку соответствующих данных
Если можно с кратким пояснением скрипта. (это по фильтр)
[moder]Тема закрыта. Причина: нарушение п.п. 4, 5q Правил форума[/moder]


Сообщение отредактировал Постовой - Среда, 18.12.2013, 17:39
 
Ответить
СообщениеУважаемые светилы может и мне поможите?
1)Допустим есть 4 столбца,
2)столбец "B" в котором есть 5 имен;
3)столбец "D" отображает месяц покупки;
Условие мне необходимо выбрав имя из списка (Ячейка G3) и интересующий период (I3) нажав кнопку "отчет" получить отфильтрованные строки а при нажатии кнопки "печать" получить распечатку соответствующих данных
Если можно с кратким пояснением скрипта. (это по фильтр)
[moder]Тема закрыта. Причина: нарушение п.п. 4, 5q Правил форума[/moder]

Автор - Постовой
Дата добавления - 18.12.2013 в 17:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть различные строки при различных значениях ячейки (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!