Страницы: 1
RSS
Выбор макроса при помощи выпадающего списка
 
Доброго времени суток.

Столкнулся с задачей которую прошу помощи решить.

В приложенном файле в первом модуле есть два макроса "run"и "ben", идентичные, только должны быть с разными весовыми показателями, а подсчет строк должен осуществляться путем выбора в столбце AS "Группа сервиса" "Группа продаж".
Данную функцию никак не могу сделать, прошу помощи у форумчан.
Изменено: Андрей - 24.03.2015 12:13:47
 
Если вам надо запускать макрос по изменению в ячейке столбца AS то вот такой код в модуль листа поместите.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("AS:AS")) Is Nothing Then
If Target.Value = "Группа продаж" Then
    Call ben
ElseIf Target.Value = "Группа сервиса" Then
    Call run
End If
End If
End Sub
Работать надо не 12 часов, а головой.
 
Цитата
Андрей написал: есть два макроса "run"и "ben", идентичные, только должны быть с разными весовыми показателями
Если макросы идентичные - зачем их два? Используйте в одном разные "весовые показатели".
 
Цитата
Андрей написал: идентичные, только должны быть с разными весовыми показателями
Напишите макрос с параметром - сэкономите на буквах. А вызывать можно из Worksheet_Change примерно как выше подсказали.
 
Leanna, спасибо за подсказку, так пробовал, только столкнулся с тем, что при выборе разных групп, результаты меняются во всем столбце. как на картинке
Так же вычисления нужно производить кнопкой "Выполнить".
 
Цитата
Hugo написал: Напишите макрос с параметром - сэкономите на буквах.
Если подскажите как, буду весьма благодарен.
 
Подсказать не могу - файл на 2003 не открывается.
Хотя вот:
Код
Sub vizov()
    Call makrossparametrom("test")
End Sub

Sub makrossparametrom(s As String)
    MsgBox s
End Sub

Изменено: Hugo - 24.03.2015 13:08:54
 
Цитата
Андрей написал: при выборе разных групп, результаты меняются во всем столбце.
варианта два
1) сделать макрос на пересчет только активной строки (здесь группа сервиса2.rar (93.29 КБ))
2) вести какую-н public переменную и если она true то в основном макросе в качестве i назначить активную строку, в конце сделать exit do и в worksheet_change сбросить эту переменную на false
Работать надо не 12 часов, а головой.
 
Leanna, спасибо большое!  
Страницы: 1
Наверх