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

Вход

Регистрация

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

 

= Мир MS Excel/пересчёт значений листа событием Worksheet_Calculate - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » пересчёт значений листа событием Worksheet_Calculate (Макросы/Sub)
пересчёт значений листа событием Worksheet_Calculate
miha_ Дата: Суббота, 12.01.2019, 13:38 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане.
Я использую вот такой код:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count <> 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    On Error Resume Next
    Sheets("фото").Shapes(Target).Copy
    If Err Then Exit Sub
    Target.Select
    ActiveSheet.Paste
    Target.Select
End Sub
[/vba]
При изменении значений в ячейке вручную все отлично работает.
При изменении значений ячейки формулами,событие не запускается.
Попытался решить проблему с помощью события Worksheet_Calculate, но к сожалению что то делаю не так...
Как правильно нужно преобразовать код,чтобы при измении в ячейках (через формулы), запускался код?
Спасибо.
 
Ответить
СообщениеДобрый день, уважаемые форумчане.
Я использую вот такой код:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count <> 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    On Error Resume Next
    Sheets("фото").Shapes(Target).Copy
    If Err Then Exit Sub
    Target.Select
    ActiveSheet.Paste
    Target.Select
End Sub
[/vba]
При изменении значений в ячейке вручную все отлично работает.
При изменении значений ячейки формулами,событие не запускается.
Попытался решить проблему с помощью события Worksheet_Calculate, но к сожалению что то делаю не так...
Как правильно нужно преобразовать код,чтобы при измении в ячейках (через формулы), запускался код?
Спасибо.

Автор - miha_
Дата добавления - 12.01.2019 в 13:38
vikttur Дата: Суббота, 12.01.2019, 14:07 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2921
Репутация: 525 ±
Замечаний: 0% ±

Одну из формул листа попросить пересчитываться
Код
формула+СЕГОДНЯ()*0

и использовать Worksheet_Calculate


Сообщение отредактировал vikttur - Суббота, 12.01.2019, 14:08
 
Ответить
СообщениеОдну из формул листа попросить пересчитываться
Код
формула+СЕГОДНЯ()*0

и использовать Worksheet_Calculate

Автор - vikttur
Дата добавления - 12.01.2019 в 14:07
miha_ Дата: Суббота, 12.01.2019, 21:04 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, Добрый вечер.
Одну из формул листа попросить пересчитываться

формула+СЕГОДНЯ()*0

Вы имеете ввиду данную формулу в макросе прописать или в ячейке?
И если несложно подскажите как все таки должен выглядеть код Worksheet_Calculate
спасибо
К сообщению приложен файл: 1228346.xlsm(87.2 Kb)
 
Ответить
Сообщениеvikttur, Добрый вечер.
Одну из формул листа попросить пересчитываться

формула+СЕГОДНЯ()*0

Вы имеете ввиду данную формулу в макросе прописать или в ячейке?
И если несложно подскажите как все таки должен выглядеть код Worksheet_Calculate
спасибо

Автор - miha_
Дата добавления - 12.01.2019 в 21:04
vikttur Дата: Суббота, 12.01.2019, 21:12 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2921
Репутация: 525 ±
Замечаний: 0% ±

Где у Вас изменение значения формулами?
 
Ответить
СообщениеГде у Вас изменение значения формулами?

Автор - vikttur
Дата добавления - 12.01.2019 в 21:12
miha_ Дата: Суббота, 12.01.2019, 21:16 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, на листе главная есть формула (ссылка ) на ячейку на другом листе .
Файл приложил.
К сообщению приложен файл: 3828529.xlsm(87.2 Kb)
 
Ответить
Сообщениеvikttur, на листе главная есть формула (ссылка ) на ячейку на другом листе .
Файл приложил.

Автор - miha_
Дата добавления - 12.01.2019 в 21:16
vikttur Дата: Суббота, 12.01.2019, 21:22 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2921
Репутация: 525 ±
Замечаний: 0% ±

Зачем Вы показываете тот же файл?
Видел я формулу. Вопрос был:
Цитата
Где у Вас изменение значения формулами?

Макросу важно знать, на какое событие реагировать. Если в ячейке простая ссылка - где здесь изменение?


Сообщение отредактировал vikttur - Суббота, 12.01.2019, 21:27
 
Ответить
СообщениеЗачем Вы показываете тот же файл?
Видел я формулу. Вопрос был:
Цитата
Где у Вас изменение значения формулами?

Макросу важно знать, на какое событие реагировать. Если в ячейке простая ссылка - где здесь изменение?

Автор - vikttur
Дата добавления - 12.01.2019 в 21:22
miha_ Дата: Суббота, 12.01.2019, 21:28 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur, Хорошо, а как тогда активировать код,который есть? и соответственно обновление картинок, при изменении значений через ссылку?
Спасибо.
 
Ответить
Сообщениеvikttur, Хорошо, а как тогда активировать код,который есть? и соответственно обновление картинок, при изменении значений через ссылку?
Спасибо.

Автор - miha_
Дата добавления - 12.01.2019 в 21:28
vikttur Дата: Суббота, 12.01.2019, 21:30 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2921
Репутация: 525 ±
Замечаний: 0% ±

Цитата
при изменении значений через ссылку

Расшифруйте.
Какие действия происходят в файле, после которых нужно пересчитать лист?
Если сигнал - изменения на другом листе, то и отслеживать нужно события того листа

И вообще: обязательно нужно автоотслеживание? Запуск вручную после каких-то действий - не вариант?


Сообщение отредактировал vikttur - Суббота, 12.01.2019, 21:35
 
Ответить
Сообщение
Цитата
при изменении значений через ссылку

Расшифруйте.
Какие действия происходят в файле, после которых нужно пересчитать лист?
Если сигнал - изменения на другом листе, то и отслеживать нужно события того листа

И вообще: обязательно нужно автоотслеживание? Запуск вручную после каких-то действий - не вариант?

Автор - vikttur
Дата добавления - 12.01.2019 в 21:30
miha_ Дата: Суббота, 12.01.2019, 21:39 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
vikttur,
Какие действия происходят в файле
на листе 'исходные значения'!A2 меняется значение (вручную (либо с помощью формул). Соответственно и на листе 'главная'!A2 меняется значение .
Нужно чтобы всегда на листе главная картинка соответствовала значению в ячейке.
 
Ответить
Сообщениеvikttur,
Какие действия происходят в файле
на листе 'исходные значения'!A2 меняется значение (вручную (либо с помощью формул). Соответственно и на листе 'главная'!A2 меняется значение .
Нужно чтобы всегда на листе главная картинка соответствовала значению в ячейке.

Автор - miha_
Дата добавления - 12.01.2019 в 21:39
vikttur Дата: Суббота, 12.01.2019, 21:54 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2921
Репутация: 525 ±
Замечаний: 0% ±

Цитата
Если сигнал - изменения на другом листе, то и отслеживать нужно события того листа

Определите, на каком листе происходят изменения. Если на листе 'исходные значения' что-то меняете - код в модуль этого листа, если на этом листе данные тоже формулами подтягиваются - ищите источник изменений и процедуру пишите в модуль того листа.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A2:A50"), Target) Is Nothing Then
...
[/vba]
Т.е. реагирование там, где срабатывает событие изменения ячейки


Сообщение отредактировал vikttur - Суббота, 12.01.2019, 21:59
 
Ответить
Сообщение
Цитата
Если сигнал - изменения на другом листе, то и отслеживать нужно события того листа

Определите, на каком листе происходят изменения. Если на листе 'исходные значения' что-то меняете - код в модуль этого листа, если на этом листе данные тоже формулами подтягиваются - ищите источник изменений и процедуру пишите в модуль того листа.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("A2:A50"), Target) Is Nothing Then
...
[/vba]
Т.е. реагирование там, где срабатывает событие изменения ячейки

Автор - vikttur
Дата добавления - 12.01.2019 в 21:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » пересчёт значений листа событием Worksheet_Calculate (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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