Есть кнопки с макросами. Как их все запихнуть в один выпадающий список(точнее действие этих кнопок, а не сами кнопки:-))? И чтобы естественно по выбору макроса из этого выпадающего списка он выполнял свое действие.
Конкретно по моему прикрепленному файлу. В графе "Отобразить купонов" есть кнопки 5,10,15,20,25, которые, при кликании на них, отображают нужное количество столбцов. Вот их надо запихнуть в один выпадающий список, и чтобы при их выборе из списка, они выполняли своё действие. Как это сделать?
То есть делаю это для того, чтобы была возможность выбирать отображение от 1 до 25 столбцов в выпадающем списке, а не как сейчас только 5,10,15,20,25.
Есть кнопки с макросами. Как их все запихнуть в один выпадающий список(точнее действие этих кнопок, а не сами кнопки:-))? И чтобы естественно по выбору макроса из этого выпадающего списка он выполнял свое действие.
Конкретно по моему прикрепленному файлу. В графе "Отобразить купонов" есть кнопки 5,10,15,20,25, которые, при кликании на них, отображают нужное количество столбцов. Вот их надо запихнуть в один выпадающий список, и чтобы при их выборе из списка, они выполняли своё действие. Как это сделать?
То есть делаю это для того, чтобы была возможность выбирать отображение от 1 до 25 столбцов в выпадающем списке, а не как сейчас только 5,10,15,20,25.staff10207
SLAVICK, то есть для каждого столбца все равно придется отдельный макрос создавать? или можно как-то упростить этот процесс? Я хочу, чтоб можно было 1,2,3,4 и т.д. до 25 скрывать/отображать.
SLAVICK, то есть для каждого столбца все равно придется отдельный макрос создавать? или можно как-то упростить этот процесс? Я хочу, чтоб можно было 1,2,3,4 и т.д. до 25 скрывать/отображать.staff10207
Сообщение отредактировал staff10207 - Пятница, 11.12.2015, 18:55
то есть для каждого столбца все равно придется отдельный макрос создавать
Можно один универсальный: [vba]
Код
Sub HideALL(n%) Dim i As Long Application.ScreenUpdating = False For i = 13 To 37 If Cells(1, i) <= n Then Cells(1, i).EntireColumn.Hidden = False Else Cells(1, i).EntireColumn.Hidden = True End If Next Application.ScreenUpdating = True End Sub
[/vba] И в лист вот это: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim n If Not Target.Address = Range("AN3").Address Then Exit Sub n = Range("BG1:BG100").Find(What:=Target.Value, After:=Range("BG1"), LookIn:=xlValues, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Row Run "HideALL", n End Sub
то есть для каждого столбца все равно придется отдельный макрос создавать
Можно один универсальный: [vba]
Код
Sub HideALL(n%) Dim i As Long Application.ScreenUpdating = False For i = 13 To 37 If Cells(1, i) <= n Then Cells(1, i).EntireColumn.Hidden = False Else Cells(1, i).EntireColumn.Hidden = True End If Next Application.ScreenUpdating = True End Sub
[/vba] И в лист вот это: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim n If Not Target.Address = Range("AN3").Address Then Exit Sub n = Range("BG1:BG100").Find(What:=Target.Value, After:=Range("BG1"), LookIn:=xlValues, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Row Run "HideALL", n End Sub