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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть колонки по заданному значению - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть колонки по заданному значению (Макросы/Sub)
Скрыть колонки по заданному значению
Вася_Пупкин Дата: Понедельник, 14.09.2015, 13:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день,
друзья, помогите с решением.

Есть выпадающий список и 6-ть. колонок с заглавием "Объект сравнения №..."
Ожидаемый результат: при выборе из выпадающего списка (ВС) количество объектов сравнения (например 3 шт.) остальные колонки (Объект сравнения №4, №5, №6) должны скрываться.

Пробовал применить следующий макрос:
[vba]
Код
Option Explicit
Sub test()
Dim sht As Worksheet
Dim a As Integer

Set sht = ThisWorkbook.Worksheets("СП")

If sht.Cells(3, 4) = 1 Then
For a = 6 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 6 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 2 Then
For a = 7 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 7 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 3 Then
For a = 8 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 8 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 4 Then
For a = 9 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 9 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 5 Then
For a = 10 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 10 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 6 Then
For a = 11 To 11
sht.Columns(a).Hidden = True
Next a
Else
For a = 11 To 11
sht.Columns(a).Hidden = False
Next a
End If
End Sub
[/vba]

Результат: программа отображает 5-ть колонок при значениях ВС от 1 до 5 и 6-ть колонок при значении 6.
К сообщению приложен файл: 6895214.7z (28.0 Kb)


Сообщение отредактировал Вася_Пупкин - Понедельник, 14.09.2015, 16:03
 
Ответить
СообщениеДобрый день,
друзья, помогите с решением.

Есть выпадающий список и 6-ть. колонок с заглавием "Объект сравнения №..."
Ожидаемый результат: при выборе из выпадающего списка (ВС) количество объектов сравнения (например 3 шт.) остальные колонки (Объект сравнения №4, №5, №6) должны скрываться.

Пробовал применить следующий макрос:
[vba]
Код
Option Explicit
Sub test()
Dim sht As Worksheet
Dim a As Integer

Set sht = ThisWorkbook.Worksheets("СП")

If sht.Cells(3, 4) = 1 Then
For a = 6 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 6 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 2 Then
For a = 7 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 7 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 3 Then
For a = 8 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 8 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 4 Then
For a = 9 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 9 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 5 Then
For a = 10 To 10
sht.Columns(a).Hidden = True
Next a
Else
For a = 10 To 10
sht.Columns(a).Hidden = False
Next a
End If
If sht.Cells(3, 4) = 6 Then
For a = 11 To 11
sht.Columns(a).Hidden = True
Next a
Else
For a = 11 To 11
sht.Columns(a).Hidden = False
Next a
End If
End Sub
[/vba]

Результат: программа отображает 5-ть колонок при значениях ВС от 1 до 5 и 6-ть колонок при значении 6.

Автор - Вася_Пупкин
Дата добавления - 14.09.2015 в 13:06
nilem Дата: Понедельник, 14.09.2015, 13:54 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет, Вася
попробуйте так
[vba]
Код
Sub test()
Dim sht As Worksheet, cnt As Integer
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("ÑÏ")
     cnt = .Cells(3, 4)
     .Columns(5).Resize(, 6).Hidden = True
     .Columns(5).Resize(, cnt).Hidden = False
End With
Application.ScreenUpdating = True
End Sub
[/vba]
[p.s.]чтобы код был вот такой красивый, используйте теги Код (кнопка #)[/p.s.]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПривет, Вася
попробуйте так
[vba]
Код
Sub test()
Dim sht As Worksheet, cnt As Integer
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("ÑÏ")
     cnt = .Cells(3, 4)
     .Columns(5).Resize(, 6).Hidden = True
     .Columns(5).Resize(, cnt).Hidden = False
End With
Application.ScreenUpdating = True
End Sub
[/vba]
[p.s.]чтобы код был вот такой красивый, используйте теги Код (кнопка #)[/p.s.]

Автор - nilem
Дата добавления - 14.09.2015 в 13:54
Udik Дата: Понедельник, 14.09.2015, 14:55 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Или с циклами
[vba]
Код

Option Explicit
Sub test()
     Dim sht As Worksheet
     Dim i As Integer
     Dim num As Byte
      
     Set sht = ThisWorkbook.Worksheets(СП")
     num = sht.Cells(3, 4)
     For i = 5 To num + 4
             sht.Columns(i).Hidden = False
     Next i
     For i = num + 5 To 10
             sht.Columns(i).Hidden = True
     Next i
End Sub
[/vba]
[p.s.]Без необходимости не стоит файл в архив пихать, многим лень заниматься распаковкой :)
К сообщению приложен файл: 1_01.xlsm (31.1 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Понедельник, 14.09.2015, 15:00
 
Ответить
СообщениеИли с циклами
[vba]
Код

Option Explicit
Sub test()
     Dim sht As Worksheet
     Dim i As Integer
     Dim num As Byte
      
     Set sht = ThisWorkbook.Worksheets(СП")
     num = sht.Cells(3, 4)
     For i = 5 To num + 4
             sht.Columns(i).Hidden = False
     Next i
     For i = num + 5 To 10
             sht.Columns(i).Hidden = True
     Next i
End Sub
[/vba]
[p.s.]Без необходимости не стоит файл в архив пихать, многим лень заниматься распаковкой :)

Автор - Udik
Дата добавления - 14.09.2015 в 14:55
Вася_Пупкин Дата: Понедельник, 14.09.2015, 15:31 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Проработал сабж.
Немного усложню вопрос.
При выборе значения 1-6 выпадающего списка листа "СП", на листе "СП" должно остаться соответствующее число колонок E-J, значения остальных колонок должны быть исключены из расчёта. На листах "А-1" и "Расчет Км СП " нужно скрыть соответствующие группы полей (подсвечено заливкой).
К сообщению приложен файл: 68952141.7z (49.5 Kb)
 
Ответить
СообщениеПроработал сабж.
Немного усложню вопрос.
При выборе значения 1-6 выпадающего списка листа "СП", на листе "СП" должно остаться соответствующее число колонок E-J, значения остальных колонок должны быть исключены из расчёта. На листах "А-1" и "Расчет Км СП " нужно скрыть соответствующие группы полей (подсвечено заливкой).

Автор - Вася_Пупкин
Дата добавления - 14.09.2015 в 15:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть колонки по заданному значению (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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