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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть/отобразить строки со значениями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Скрыть/отобразить строки со значениями
патрик Дата: Понедельник, 22.10.2012, 22:25 | Сообщение № 1
Группа: Гости
Здравствуйте! Подскажите макрос для отображения/скрытия определенных строк при выборе значения. Т.е. вводишь в ячейку значение 1 - отображаются все строки, если 2 - скрываются строки 2,4,15,20, если 3 - скрываются строки 2,4,15,20,21,25 и так далее.
Заранее спасибо.
p.s. я так понимаю макрос должен быть написан через "если", но в написании ничего не шарю
 
Ответить
СообщениеЗдравствуйте! Подскажите макрос для отображения/скрытия определенных строк при выборе значения. Т.е. вводишь в ячейку значение 1 - отображаются все строки, если 2 - скрываются строки 2,4,15,20, если 3 - скрываются строки 2,4,15,20,21,25 и так далее.
Заранее спасибо.
p.s. я так понимаю макрос должен быть написан через "если", но в написании ничего не шарю

Автор - патрик
Дата добавления - 22.10.2012 в 22:25
ABC Дата: Понедельник, 22.10.2012, 23:09 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
поищите Select Case место If (ЕСЛИ)


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщениепоищите Select Case место If (ЕСЛИ)

Автор - ABC
Дата добавления - 22.10.2012 в 23:09
Hugo Дата: Понедельник, 22.10.2012, 23:09 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
       Dim el
       If Target.Address(0, 0) = "A1" Then
           Application.ScreenUpdating = False
           Select Case True
           Case Target.Value = 1: Rows.Hidden = False
           Case Target.Value = 2: Rows.Hidden = False
               For Each el In Array(2, 4, 15, 20)
                   Rows(el).Hidden = True
               Next
           Case Target.Value = 3: Rows.Hidden = False
               For Each el In Array(2, 4, 15, 20, 21, 25)
                   Rows(el).Hidden = True
               Next
           End Select
       End If
       Application.ScreenUpdating = True
End Sub
[/vba]

P.S. Что-то я усложнил... Так проще:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
      Dim el
      If Target.Address(0, 0) = "A1" Then
          Application.ScreenUpdating = False
          Select Case Target
          Case 1: Rows.Hidden = False
          Case 2: Rows.Hidden = False
              For Each el In Array(2, 4, 15, 20)
                  Rows(el).Hidden = True
              Next
          Case 3: Rows.Hidden = False
              For Each el In Array(2, 4, 15, 20, 21, 25)
                  Rows(el).Hidden = True
              Next
          End Select
      End If
      Application.ScreenUpdating = True
End Sub
[/vba]

Как видно по коду - анализируется значение ячейки A1.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
       Dim el
       If Target.Address(0, 0) = "A1" Then
           Application.ScreenUpdating = False
           Select Case True
           Case Target.Value = 1: Rows.Hidden = False
           Case Target.Value = 2: Rows.Hidden = False
               For Each el In Array(2, 4, 15, 20)
                   Rows(el).Hidden = True
               Next
           Case Target.Value = 3: Rows.Hidden = False
               For Each el In Array(2, 4, 15, 20, 21, 25)
                   Rows(el).Hidden = True
               Next
           End Select
       End If
       Application.ScreenUpdating = True
End Sub
[/vba]

P.S. Что-то я усложнил... Так проще:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
      Dim el
      If Target.Address(0, 0) = "A1" Then
          Application.ScreenUpdating = False
          Select Case Target
          Case 1: Rows.Hidden = False
          Case 2: Rows.Hidden = False
              For Each el In Array(2, 4, 15, 20)
                  Rows(el).Hidden = True
              Next
          Case 3: Rows.Hidden = False
              For Each el In Array(2, 4, 15, 20, 21, 25)
                  Rows(el).Hidden = True
              Next
          End Select
      End If
      Application.ScreenUpdating = True
End Sub
[/vba]

Как видно по коду - анализируется значение ячейки A1.

Автор - Hugo
Дата добавления - 22.10.2012 в 23:09
KuklP Дата: Понедельник, 22.10.2012, 23:34 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Чет ты Игорь перемудрил:-)
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
         If Target.Address(0, 0) = "A1" Then
             Application.ScreenUpdating = False
             Rows.Hidden = False
             Select Case Target
             Case 2: [2:2,4:4,15:15,20:20].EntireRow.Hidden = True
             Case 3: [2:2,4:4,15:15,20:21,25:25].EntireRow.Hidden = True
             End Select
         End If
         Application.ScreenUpdating = True
End Sub
[/vba]
или:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "A1" Then
           Application.ScreenUpdating = False
           Rows.Hidden = False
           If Target = 2 Then [2:2,4:4,15:15,20:20].EntireRow.Hidden = True
           If Target = 3 Then [2:2,4:4,15:15,20:21,25:25].EntireRow.Hidden = True
       End If
       Application.ScreenUpdating = True
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 22.10.2012, 23:40
 
Ответить
СообщениеЧет ты Игорь перемудрил:-)
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
         If Target.Address(0, 0) = "A1" Then
             Application.ScreenUpdating = False
             Rows.Hidden = False
             Select Case Target
             Case 2: [2:2,4:4,15:15,20:20].EntireRow.Hidden = True
             Case 3: [2:2,4:4,15:15,20:21,25:25].EntireRow.Hidden = True
             End Select
         End If
         Application.ScreenUpdating = True
End Sub
[/vba]
или:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "A1" Then
           Application.ScreenUpdating = False
           Rows.Hidden = False
           If Target = 2 Then [2:2,4:4,15:15,20:20].EntireRow.Hidden = True
           If Target = 3 Then [2:2,4:4,15:15,20:21,25:25].EntireRow.Hidden = True
       End If
       Application.ScreenUpdating = True
End Sub
[/vba]

Автор - KuklP
Дата добавления - 22.10.2012 в 23:34
Hugo Дата: Понедельник, 22.10.2012, 23:46 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Да что-то не нащупал эти [], а память уже не та очевидно sad
Но на ввод других цифр специально ничего не делал - такого нет в вводной, чтоб на 0 строки открывать smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа что-то не нащупал эти [], а память уже не та очевидно sad
Но на ввод других цифр специально ничего не делал - такого нет в вводной, чтоб на 0 строки открывать smile

Автор - Hugo
Дата добавления - 22.10.2012 в 23:46
Патрик Дата: Понедельник, 22.10.2012, 23:51 | Сообщение № 6
Группа: Гости
Огромное спасибо!
 
Ответить
СообщениеОгромное спасибо!

Автор - Патрик
Дата добавления - 22.10.2012 в 23:51
  • Страница 1 из 1
  • 1
Поиск:

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