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

Вход

Регистрация

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

 

= Мир MS Excel/Сократить код - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Сократить код
Serge_007 Дата: Понедельник, 09.07.2012, 19:52 | Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Написал тут такой код (Требования: Есть книга состоящая, как минимум, из 3 листов "Лист1", "Лист2", "Лист3", возможно наличие и других листов. На листе "Лист1" в ячейке А1 условие (2 или 3)
В зависимости от данных в ячейке А1 на листе "Лист1" листы - "Лист2" или "Лист3" должны скрываться.
Если на листе "Лист1" в ячейке А1 значение 1, то отображаются все листы. Если в книге есть другие листы, то с ними ничего происходить не должно. После любого выбора надо возвращаться на Лист1):

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
               If Sheets("Лист1").Range("A1") = 2 Then
Sheets("Лист2").Visible = False
Sheets("Лист3").Visible = True
               ElseIf Sheets("Лист1").Range("A1") = 3 Then
Sheets("Лист3").Visible = False
Sheets("Лист2").Visible = True
               ElseIf Sheets("Лист1").Range("A1") = 1 Then
               Sheets("Лист3").Visible = True
Sheets("Лист2").Visible = True
           End If
           Sheets("Лист1").Select
           Application.ScreenUpdating = True
End Sub
[/vba]

Вопрос: Можно его принципиально сократить?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНаписал тут такой код (Требования: Есть книга состоящая, как минимум, из 3 листов "Лист1", "Лист2", "Лист3", возможно наличие и других листов. На листе "Лист1" в ячейке А1 условие (2 или 3)
В зависимости от данных в ячейке А1 на листе "Лист1" листы - "Лист2" или "Лист3" должны скрываться.
Если на листе "Лист1" в ячейке А1 значение 1, то отображаются все листы. Если в книге есть другие листы, то с ними ничего происходить не должно. После любого выбора надо возвращаться на Лист1):

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
               If Sheets("Лист1").Range("A1") = 2 Then
Sheets("Лист2").Visible = False
Sheets("Лист3").Visible = True
               ElseIf Sheets("Лист1").Range("A1") = 3 Then
Sheets("Лист3").Visible = False
Sheets("Лист2").Visible = True
               ElseIf Sheets("Лист1").Range("A1") = 1 Then
               Sheets("Лист3").Visible = True
Sheets("Лист2").Visible = True
           End If
           Sheets("Лист1").Select
           Application.ScreenUpdating = True
End Sub
[/vba]

Вопрос: Можно его принципиально сократить?

Автор - Serge_007
Дата добавления - 09.07.2012 в 19:52
Alex_ST Дата: Вторник, 10.07.2012, 22:19 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Хозяин-барин.
Мой вариант работает точно так же как и у Михаила, просто это сделано в цикле и поэтому код позволяет элементарно подстраивать его под изменяющиеся нужды.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеХозяин-барин.
Мой вариант работает точно так же как и у Михаила, просто это сделано в цикле и поэтому код позволяет элементарно подстраивать его под изменяющиеся нужды.

Автор - Alex_ST
Дата добавления - 10.07.2012 в 22:19
Гость Дата: Вторник, 10.07.2012, 22:22 | Сообщение № 22
Группа: Гости
Quote (Alex_ST)
У кого короче тогда получится?

обычно спорили по-другому :) :) :)
 
Ответить
Сообщение
Quote (Alex_ST)
У кого короче тогда получится?

обычно спорили по-другому :) :) :)

Автор - Гость
Дата добавления - 10.07.2012 в 22:22
Serge_007 Дата: Вторник, 10.07.2012, 22:29 | Сообщение № 23
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
обычно спорили по-другому

Мы не спорим.
Мы ищем истину smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
обычно спорили по-другому

Мы не спорим.
Мы ищем истину smile

Автор - Serge_007
Дата добавления - 10.07.2012 в 22:29
RAN Дата: Вторник, 10.07.2012, 22:38 | Сообщение № 24
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Serge_007, я и не пытался сократить. Я выложил тебе вариант для уяснения принципа, как это делается. И то, что все листы отображаются, знал.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеSerge_007, я и не пытался сократить. Я выложил тебе вариант для уяснения принципа, как это делается. И то, что все листы отображаются, знал.

Автор - RAN
Дата добавления - 10.07.2012 в 22:38
Serge_007 Дата: Вторник, 10.07.2012, 22:39 | Сообщение № 25
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (RAN)
Я выложил тебе вариант для уяснения принципа, как это делается.

Ок, спс smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (RAN)
Я выложил тебе вариант для уяснения принципа, как это делается.

Ок, спс smile

Автор - Serge_007
Дата добавления - 10.07.2012 в 22:39
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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