Страницы: 1
RSS
VBA макрос для пересчета листа в зависимости от положения курсора на странице, для принудительного пересчета части книги в зависимости от действий оператора
 

Добрый день уважаемые кодеры,
поддержите советом формулиста.  :)  есть желание сделать красивое решение но по VBA плаваю.

идея в том чтоб сделать небольшой помощник для заполнения данных человеком

суть работы как я представляю:
при изменении позиции курсора на листе (только для этого листа) активируется макрос

макрос записывает положение курсора строка/столбец, передает переменные формулам и запускает пересчет для диапазона ячеек (а то файл большой компьютеры слабые ))) )
в результате получается область где динамически отфильтровываются нужные данные для нужного набора атрибутов/признаков

для ясности изложения приложил файл с примером как это может выглядеть.

 
Эм.... мне кажется что так Вы только хуже сделаете, т.к. при вождении курсором постоянно будут обновляться данные

вот статья по координатному выделению - http://www.planetaexcel.ru/techniques/9/58/
 
Цитата
Илья Демид написал:
т.к. при вождении курсором постоянно будут обновляться данные
при вождении курсором? нет при выборе новой ячейки срабатывает макрос вот так:
(Спасибо The_Prist, )
Код
Option Explicit
Private WithEvents App As Application
'Назначаем значение переменной App
Private Sub Workbook_Open()
      Set App = Application
End Sub
'Отслеживаем выделение ячеек во всех открытых книгах
Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 '   If Sh.Name = "R1" Then
        MsgBox "Вы выделили ячейку с адресом: " & ActiveCell.Address
 '   End If
End Sub
 
остается  разобраться как из адреса ячейки задать параметры для формулы и готово )))

вот что получилось примерно....
после выполнения макроса пропадает возможность Undo - Ctrl+z   никто не знает как с этим бороться?
Изменено: Blood81 - 17.08.2017 18:30:51
 
через VBA
Код
aсtivecell.value 

через формулу

Код
=ДВССЫЛ(G24&G25;ИСТИНА)

По поводу отмены действия ищите по форуму, где-то было

Изменено: Илья Демид - 18.08.2017 09:31:32
 
Цитата
Илья Демид написал:
По поводу отмены действия ищите по форуму, где-то было
Илья я негодую :excl:  :evil:
могли бы сразу сказать что:
Цитата
"при исполнении любого макроса обнуляется стек последних изменений файла и обойти это на сегодняшний день никак нельзя"
впрочем пролистав 5 лет форума я узнал что вопрос этот многих волнует и есть надежды на некоторые изменения в коде от самого Майкрософта, так что будем надеяться на лучшее. :)  
 
Цитата
Blood81 написал:
"при исполнении любого макроса обнуляется стек последних изменений файла и обойти это на сегодняшний день никак нельзя"впрочем пролистав 5 лет форума я узнал что вопрос этот многих волнует и есть надежды на некоторые изменения в коде от самого Майкрософта, так что будем надеяться на лучшее.  
Можно, в свое время я написал класс, который отслеживал все изменения и Ctrl+Z работал как обычно.
 
Цитата
iMrTidy написал:
в свое время я написал класс, который отслеживал все изменения и Ctrl+Z работал как обычно.
ну так поделитесь :sceptic:  
 
К сожалению не могу, продукт не является моей интеллектуальной собстенностью, но могу поделиться тем, что меня "вдохновило":
http://www.jkp-ads.com/Articles/UndoWithVBA00.asp
Изменено: iMrTidy - 21.08.2017 18:21:30
 
Цитата
iMrTidy написал:
продукт не является моей интеллектуальной собстенностью
Вы продали авторские права? )
 
Можно и так сказать. До начала работы подписал NDA, и отказ от правообладания на весь софт, что будет мною написан в рамках проекта.
 
Сделайте аналог для форумчан - он будет уже не в рамках Вашего проекта )
 
Цитата
iMrTidy написал:
могу поделиться тем, что меня "вдохновило"
простите но эта статья про откат действий самого макроса

вероятно вы не поняли смысла моего вопроса/поиска
попробую разложить по пунктам:
при работе в книге Excel записывает все(почти) действия пользователя и формирует из них стек откатов(отмены действий)
возврат к более ранним состояниям(без возврата к сохранённым версиям) книги возможен в пределах этого стека откатов
использование VBA всегда :excl: обнуляет этот стек откатов таким образом отмена действий пользователя в данной книге становится невозможной
на сегодняшний день есть несколько решений с отменой действий самого макроса - за счет создания резервных копий информации и последующего их восстановления(о чем вы и говорили)
но к сожалению копирование самого стека пока что нам недоступно  :(  
 
Blood81, я прекрасно Вас понял с первого раза. Изменения можно отслеживать через VBA, тогда будет не так уж важно, что явилось их источником. Дорабатывать придется самостоятельно, и довольно много.
Страницы: 1
Наверх