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

Вход

Регистрация

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

 

= Мир MS Excel/Выполнение макроса после изменения листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выполнение макроса после изменения листа (Формулы/Formulas)
Выполнение макроса после изменения листа
Matthew Дата: Понедельник, 31.10.2016, 14:52 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Подскажите пожалуйста, есть большой макрос, который проверяет выбранные ячейки на наличие в них определенного текста. Как можно уменьшить этот макрос в плане поставить диапазон ячеек для проверки?
Плюс к этому, можно сделать автозапуск этого макроса, чтобы после изменения ячеек, не обязательно этих, а возможно после любых изменений в книге(листе) макрос автоматически выполнялся. Т.е. я поменял значение в ячейке, или вообще в листе что-то произошло и выполнилось действие макроса.
Прикрепил текстовый файл с макросом.
Заранее спасибо!
К сообщению приложен файл: 2413944.txt (4.2 Kb)
 
Ответить
СообщениеПодскажите пожалуйста, есть большой макрос, который проверяет выбранные ячейки на наличие в них определенного текста. Как можно уменьшить этот макрос в плане поставить диапазон ячеек для проверки?
Плюс к этому, можно сделать автозапуск этого макроса, чтобы после изменения ячеек, не обязательно этих, а возможно после любых изменений в книге(листе) макрос автоматически выполнялся. Т.е. я поменял значение в ячейке, или вообще в листе что-то произошло и выполнилось действие макроса.
Прикрепил текстовый файл с макросом.
Заранее спасибо!

Автор - Matthew
Дата добавления - 31.10.2016 в 14:52
KuklP Дата: Понедельник, 31.10.2016, 19:17 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Прикрепил текстовый файл
Ну во-первых в Блокноте макросы не работают. Во-вторых этот макрос и так:
после изменения ячеек, не обязательно этих, а возможно после любых изменений в книге(листе) макрос автоматически выполнялся
В третьих
поставить диапазон ячеек для проверки
он и так там поставлен, проверяется не весь лист. Возможно Вы имели ввиду реакцию в определенном диапазоне, но тогда это противоречит условию "во-вторых". По теме "уменьшить" - ну занесите в массив проверяемые адреса:
If .Cells(17, 4)
...
If .Cells(18, 4)
... и т.д. в стиле А1, адреса-то одни и те же.
во второй массив через вертикальный табулятор занесите строки с начальниками и адреса строк для скрытия. И перебирайте цикл в цикле. Будет короче, хоть и не так понятно :)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Прикрепил текстовый файл
Ну во-первых в Блокноте макросы не работают. Во-вторых этот макрос и так:
после изменения ячеек, не обязательно этих, а возможно после любых изменений в книге(листе) макрос автоматически выполнялся
В третьих
поставить диапазон ячеек для проверки
он и так там поставлен, проверяется не весь лист. Возможно Вы имели ввиду реакцию в определенном диапазоне, но тогда это противоречит условию "во-вторых". По теме "уменьшить" - ну занесите в массив проверяемые адреса:
If .Cells(17, 4)
...
If .Cells(18, 4)
... и т.д. в стиле А1, адреса-то одни и те же.
во второй массив через вертикальный табулятор занесите строки с начальниками и адреса строк для скрытия. И перебирайте цикл в цикле. Будет короче, хоть и не так понятно :)

Автор - KuklP
Дата добавления - 31.10.2016 в 19:17
krosav4ig Дата: Понедельник, 31.10.2016, 19:32 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
если правильно понял...
в модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Dic As Object, K
    With Application: .ScreenUpdating = 0: .EnableEvents = 0
    With Sheets("Служебная записка")
        Set Dic = CreateObject("Scripting.Dictionary")
        Dic("начальнику ОРСА Сиротскому М.С.,") = "38:39"
        Dic("начальнику ОРПО Чекалину Л.В.,") = "42:43"
        Dic("начальнику КТО Лужецкому В.Н.,") = "46:47"
        Dic("начальнику ТО Смирнову М.Н.,") = "50:51"
        Dic("начальнику ЭТО Кондратьеву Л.В.,") = "54:55"
        Dic("начальнику ПНРиТО Хлынину М.В.,") = "58:59"
        .Range(Join(Dic.Items, ",")).EntireRow.Hidden = True
        For Each K In Dic.keys
            Select Case K
                Case .[D17], .[D18], .[D19], .[Q17], .[Q18], .[Q19]
                    .Rows(Dic(K)).Hidden = False
            End Select
        Next
        Set Dic = Nothing
    End With
    .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 31.10.2016, 20:54
 
Ответить
Сообщениеесли правильно понял...
в модуль ЭтаКнига
[vba]
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Dic As Object, K
    With Application: .ScreenUpdating = 0: .EnableEvents = 0
    With Sheets("Служебная записка")
        Set Dic = CreateObject("Scripting.Dictionary")
        Dic("начальнику ОРСА Сиротскому М.С.,") = "38:39"
        Dic("начальнику ОРПО Чекалину Л.В.,") = "42:43"
        Dic("начальнику КТО Лужецкому В.Н.,") = "46:47"
        Dic("начальнику ТО Смирнову М.Н.,") = "50:51"
        Dic("начальнику ЭТО Кондратьеву Л.В.,") = "54:55"
        Dic("начальнику ПНРиТО Хлынину М.В.,") = "58:59"
        .Range(Join(Dic.Items, ",")).EntireRow.Hidden = True
        For Each K In Dic.keys
            Select Case K
                Case .[D17], .[D18], .[D19], .[Q17], .[Q18], .[Q19]
                    .Rows(Dic(K)).Hidden = False
            End Select
        Next
        Set Dic = Nothing
    End With
    .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 31.10.2016 в 19:32
KuklP Дата: Понедельник, 31.10.2016, 19:42 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
...


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 31.10.2016, 21:03
 
Ответить
Сообщение...

Автор - KuklP
Дата добавления - 31.10.2016 в 19:42
krosav4ig Дата: Понедельник, 31.10.2016, 20:55 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
упс :)
исправил


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеупс :)
исправил

Автор - krosav4ig
Дата добавления - 31.10.2016 в 20:55
Matthew Дата: Вторник, 01.11.2016, 09:40 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ребят, я в этом деле новичок (сильно сказано), попробовал, не получается, при изменении данного диапазона все равно приходится каждый раз выполнять макрос. Скину файл. Есть кстати еще вопрос, по этому же файлу, но он вроде сложнее. Возможно косяк в том, что в выбранном диапазоне стоит проверка данных, т.е. данные вставляю с выпадающего меню. Покажите ошибки, подскажите где должен быть текст макроса, всё в одном модуле или в отдельном и имеет ли это значение.
Заранее большое спасибо.

http://www.excelworld.ru/forum/2-30974-1
к этому же файлу просьба
К сообщению приложен файл: 9141334.xlsm (49.5 Kb)
 
Ответить
СообщениеРебят, я в этом деле новичок (сильно сказано), попробовал, не получается, при изменении данного диапазона все равно приходится каждый раз выполнять макрос. Скину файл. Есть кстати еще вопрос, по этому же файлу, но он вроде сложнее. Возможно косяк в том, что в выбранном диапазоне стоит проверка данных, т.е. данные вставляю с выпадающего меню. Покажите ошибки, подскажите где должен быть текст макроса, всё в одном модуле или в отдельном и имеет ли это значение.
Заранее большое спасибо.

http://www.excelworld.ru/forum/2-30974-1
к этому же файлу просьба

Автор - Matthew
Дата добавления - 01.11.2016 в 09:40
Wasilich Дата: Четверг, 03.11.2016, 11:53 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Ради любопытства посмотрел тему и файл. И не понял. Как заполняется "Служебная записка". В графе "кому" шесть полей для заполнения. И в коде проверка этих 6 полей.
Записка заполняется сразу шестерым начальникам? %) Хотелось бы посмотреть заполненный документ. yes
Да и вообще, понять бы смысл этой задачи, возможно у нее есть другое решение.
Без макросов. Например такое:
К сообщению приложен файл: Matthew.xls (57.0 Kb)


Сообщение отредактировал Wasilich - Четверг, 03.11.2016, 13:05
 
Ответить
СообщениеРади любопытства посмотрел тему и файл. И не понял. Как заполняется "Служебная записка". В графе "кому" шесть полей для заполнения. И в коде проверка этих 6 полей.
Записка заполняется сразу шестерым начальникам? %) Хотелось бы посмотреть заполненный документ. yes
Да и вообще, понять бы смысл этой задачи, возможно у нее есть другое решение.
Без макросов. Например такое:

Автор - Wasilich
Дата добавления - 03.11.2016 в 11:53
Timber_Wolf Дата: Четверг, 03.11.2016, 11:56 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
Ребят, я в этом деле новичок (сильно сказано), попробовал, не получается, при изменении данного диапазона все равно приходится каждый раз выполнять макрос. Скину файл. Есть кстати еще вопрос, по этому же файлу, но он вроде сложнее. Возможно косяк в том, что в выбранном диапазоне стоит проверка данных, т.е. данные вставляю с выпадающего меню. Покажите ошибки, подскажите где должен быть текст макроса, всё в одном модуле или в отдельном и имеет ли это значение.
Заранее большое спасибо.

Положил код куда нужно, что бы срабатывал при каждом изменении. Другие модули и коды удалил, что бы понятно было что именно за это отвечает. + сделал немного по красивее с изменением высоты строк (убирает лишние отступы и пробелы если выбираются люди через одного). По другой части вопроса. Если честно не понял и примера нет посмотреть =)
К сообщению приложен файл: 2218102.xlsm (46.7 Kb)


Сообщение отредактировал Timber_Wolf - Четверг, 03.11.2016, 12:10
 
Ответить
Сообщение
Ребят, я в этом деле новичок (сильно сказано), попробовал, не получается, при изменении данного диапазона все равно приходится каждый раз выполнять макрос. Скину файл. Есть кстати еще вопрос, по этому же файлу, но он вроде сложнее. Возможно косяк в том, что в выбранном диапазоне стоит проверка данных, т.е. данные вставляю с выпадающего меню. Покажите ошибки, подскажите где должен быть текст макроса, всё в одном модуле или в отдельном и имеет ли это значение.
Заранее большое спасибо.

Положил код куда нужно, что бы срабатывал при каждом изменении. Другие модули и коды удалил, что бы понятно было что именно за это отвечает. + сделал немного по красивее с изменением высоты строк (убирает лишние отступы и пробелы если выбираются люди через одного). По другой части вопроса. Если честно не понял и примера нет посмотреть =)

Автор - Timber_Wolf
Дата добавления - 03.11.2016 в 11:56
Timber_Wolf Дата: Четверг, 03.11.2016, 11:58 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
Ради любопытства посмотрел тему и файл. И не понял. Как заполняется "Служебная записка". В графе "кому" шесть полей для заполнения. И в коде проверка этих 6 полей.
Записка заполняется сразу шестерым начальникам? %) Хотелось бы посмотреть заполненный документ. yes

Смешно то что начальников 7 =)) А полей 6 ))) :D
 
Ответить
Сообщение
Ради любопытства посмотрел тему и файл. И не понял. Как заполняется "Служебная записка". В графе "кому" шесть полей для заполнения. И в коде проверка этих 6 полей.
Записка заполняется сразу шестерым начальникам? %) Хотелось бы посмотреть заполненный документ. yes

Смешно то что начальников 7 =)) А полей 6 ))) :D

Автор - Timber_Wolf
Дата добавления - 03.11.2016 в 11:58
Matthew Дата: Понедельник, 07.11.2016, 15:20 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Timber_Wolf, спасибо большое. Начальников редко очень 7 всех сразу бывает)
 
Ответить
СообщениеTimber_Wolf, спасибо большое. Начальников редко очень 7 всех сразу бывает)

Автор - Matthew
Дата добавления - 07.11.2016 в 15:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выполнение макроса после изменения листа (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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