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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть столбцы по условию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть столбцы по условию (Макросы/Sub)
Скрыть столбцы по условию
Serj Дата: Вторник, 18.10.2016, 22:25 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Здравствуйте, помогите написать макрос. Есть книга в которой есть листы их может быть разное количество, на 1 листе из выпадающего списка выбираю значение 1 или 2, на других листах скрываются столбцы при 1 одни, при 2 другие столбцы. Спасибо за помощь.
К сообщению приложен файл: 123.xls(31Kb)
 
Ответить
СообщениеЗдравствуйте, помогите написать макрос. Есть книга в которой есть листы их может быть разное количество, на 1 листе из выпадающего списка выбираю значение 1 или 2, на других листах скрываются столбцы при 1 одни, при 2 другие столбцы. Спасибо за помощь.

Автор - Serj
Дата добавления - 18.10.2016 в 22:25
Manyasha Дата: Вторник, 18.10.2016, 22:39 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1832
Репутация: 766 ±
Замечаний: 0% ±

Excel 2007, 2010
Serj, здравствуйте. Например, так можно:
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name <> "Лист1" Then
        Application.ScreenUpdating = False
        If Sheets("Лист1").[a2] = 1 Then
            Columns("a:c").Hidden = True
            Columns("d:f").Hidden = False
        Else
            Columns("a:c").Hidden = False
            Columns("d:f").Hidden = True
        End If
        Application.ScreenUpdating = True
    End If
End Sub
[/vba]
К сообщению приложен файл: 123-1.xls(37Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеSerj, здравствуйте. Например, так можно:
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name <> "Лист1" Then
        Application.ScreenUpdating = False
        If Sheets("Лист1").[a2] = 1 Then
            Columns("a:c").Hidden = True
            Columns("d:f").Hidden = False
        Else
            Columns("a:c").Hidden = False
            Columns("d:f").Hidden = True
        End If
        Application.ScreenUpdating = True
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 18.10.2016 в 22:39
Serj Дата: Вторник, 18.10.2016, 23:05 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Большое спасибо за помощь. Есть вопрос, а если выбор сделать из 3 значений, т. е. при 3 скрыть столбцы при значении 1 и 2.
К сообщению приложен файл: 123-2.xls(32Kb)
 
Ответить
СообщениеБольшое спасибо за помощь. Есть вопрос, а если выбор сделать из 3 значений, т. е. при 3 скрыть столбцы при значении 1 и 2.

Автор - Serj
Дата добавления - 18.10.2016 в 23:05
Karataev Дата: Вторник, 18.10.2016, 23:55 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 837
Репутация: 312 ±
Замечаний: 0% ±

Excel
Макрос запускается при изменении ячейки "A2" на листе1.
На других листах макрос работает со столбцами "A:I". Предполагается, что группа столбцов состоит из 3-х столбцов.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim c As Long, i As Long
    
    If Target.CountLarge <> 1 Then Exit Sub
    If Intersect(Range("A2"), Target) Is Nothing Then Exit Sub
    
    Application.ScreenUpdating = False
    
    c = Range("A2").Value * 3 - 2
    
    For i = 2 To Worksheets.Count
        Worksheets(i).Columns("A:I").Hidden = True
        Worksheets(i).Columns(c).Resize(, 3).Hidden = False
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Готово!", vbInformation
    
End Sub
[/vba]
К сообщению приложен файл: 7601952.xls(42Kb)


 
Ответить
СообщениеМакрос запускается при изменении ячейки "A2" на листе1.
На других листах макрос работает со столбцами "A:I". Предполагается, что группа столбцов состоит из 3-х столбцов.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim c As Long, i As Long
    
    If Target.CountLarge <> 1 Then Exit Sub
    If Intersect(Range("A2"), Target) Is Nothing Then Exit Sub
    
    Application.ScreenUpdating = False
    
    c = Range("A2").Value * 3 - 2
    
    For i = 2 To Worksheets.Count
        Worksheets(i).Columns("A:I").Hidden = True
        Worksheets(i).Columns(c).Resize(, 3).Hidden = False
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "Готово!", vbInformation
    
End Sub
[/vba]

Автор - Karataev
Дата добавления - 18.10.2016 в 23:55
Serj Дата: Среда, 19.10.2016, 00:10 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Спасибо за помощь. hands
 
Ответить
СообщениеСпасибо за помощь. hands

Автор - Serj
Дата добавления - 19.10.2016 в 00:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть столбцы по условию (Макросы/Sub)
Страница 1 из 11
Поиск:

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