Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2013, 02:16   #1
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию нужен макрос для запуска макроса по событию

т.е. мысля такая
если выделенная ячейка равняется одной из ячеек в массиве именнованых ячеек в книге тогда запускается макрос по имени выделенной ячейки

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address = Range("ТП_МИНУС").Address Then: Run "лист16.ТП_МИНУС"
     If Target.Address = Range("ТП_ПЛЮС").Address Then: Run "лист16.ТП_ПЛЮС"
     If Target.Address = Range("ОФП_МИНУС").Address Then: Run "лист16.ОФП_МИНУС"
     If Target.Address = Range("ОФП_ПЛЮС").Address Then: Run "лист16.ОФП_ПЛЮС"
     If Target.Address = Range("СФП_МИНУС").Address Then: Run "лист16.СФП_МИНУС"
     If Target.Address = Range("СФП_ПЛЮС").Address Then: Run "лист16.СФП_ПЛЮС"
End Sub
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim x As Range Application.ScreenUpdating = False Set x = ActiveWorkbook.Names If Target.Names = x Then: Run "лист16.[ActiveCell.NameLocal]" End Sub
примерно чтото вот такое прошу прощения за безграмотность

Последний раз редактировалось VITA11111; 07.05.2013 в 02:21.
VITA11111 вне форума Ответить с цитированием
Старый 07.05.2013, 03:08   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Так должно работать.

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    For Each nam In ActiveWorkbook.Names
        If nam.Name = Target.Name.Name Then
            Run "лист16." & Target.Name.NameLocal 
            Exit For
        End If
    Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.05.2013, 08:38   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

а так не проще?
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error GoTo Ex
  Run "лист16." & Target.Name.NameLocal
Ex:
End Sub
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 07.05.2013 в 08:43.
DiemonStar вне форума Ответить с цитированием
Старый 07.05.2013, 12:57   #4
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Ex
  Run "лист16." & Target.Name.NameLocal
Ex:
End Sub
2 вариант лучше работает
1 вариант при выделении не имменованой ячейки срабатывает ошибка

спасибо всем

Последний раз редактировалось VITA11111; 07.05.2013 в 13:10.
VITA11111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повтор запуска цикла макроса Irek11 Microsoft Office Excel 2 03.12.2012 21:13
Нужен макрос для CORELDRAW 11 для автоматизации процесса Ergashboy Фриланс 0 23.02.2012 22:22
макрос для запуска ряда других макросов caute Microsoft Office Word 4 19.09.2011 14:12
Эксель 2007: Проблема с запуском макроса по событию Byroad Microsoft Office Excel 7 14.09.2010 13:23
Запуск макроса по событию tim13 Microsoft Office Excel 5 17.08.2009 13:33