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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 23:00   #1
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
Восклицание Экспорт данных в Excel и сохранение истории изменения значений ячеек

Здравствуйте.
Я из QUIK в таблицу Excel экспортирую стакан заявок купли/продажи.
Продажи, закупки и цены стакана постоянно меняются и изменение всех значений стакана в QUIK отображается автоматически в таблице Excel.
Нужно, чтобы при каждом изменении значений сохранялась история изменений.
Т.е. значения стакана в Excel, отображённые в ячейках в диапазоне А2:С21 при каждом изменении переносятся в столбцы E, F, G. Например первое изменение сохраняется в ячейках E2:G21, следующие E22:G41 и т.д. Показано на рисунке: http://s017.radikal.ru/i411/1110/44/7d4fa43676a6.jpg

Вот макрос для сохранения значений при изменении, но он работает только, если значения в ячейках A2:C21 меняешь вручную, а при автоматическом изменении значений в соответствии с QUIK ничего не происходит:

Код:
Private Sub Worksheet_Change(ByVal Target As Range) //--- при изменении
If Target.Column < 4 And Target.Row < 22 Then //--- первые 3 столбца до 22 строки
Application.EnableEvents = False
If Cells(1, Target.Column + 4) <> "" Then 
LastRow = Cells(Rows.Count, Target.Column + 4).End(xlUp).Row + 1
Else
LastRow = 1
End If
Cells(LastRow, Target.Column + 4) = Cells(Target.Row, Target.Column).Value

Application.EnableEvents = True
End If
End Sub

Sub ff()
Application.EnableEvents = True
End Sub
Что нужно сделать, чтобы всё работало, как надо??? Т.е. чтобы данные сохранялись не только при изменении значений в ячейках вручную.
Asblue вне форума Ответить с цитированием
Старый 28.10.2011, 10:33   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
Радость

Посмотрите эти темы:
http://www.planetaexcel.ru/forum.php?thread_id=14046

http://www.excel-vba.ru/chto-umeet-e...ige-izmenenij/

Может поможет вам
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 28.10.2011, 18:20   #3
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

staniiislav, спасибо большое. Темы действительно полезные, но везде вся история изменений сохраняется, если только эти изменения были внесены вручную.
Asblue вне форума Ответить с цитированием
Старый 29.10.2011, 09:14   #4
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от Asblue Посмотреть сообщение
staniiislav, спасибо большое. Темы действительно полезные, но везде вся история изменений сохраняется, если только эти изменения были внесены вручную.
Нет. Если не срабатывает обработчик события
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
значит Ваша программа (QUIK), делает так
Код:
Application.EnableEvents = False
В случае, когда обновление данных происходит с определенной периодичностью, можно попробовать настроить таймер.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 29.10.2011, 09:45   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Летучую формулу со ссылкой на данные и использовать событие calculate.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 29.10.2011, 10:40   #6
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

nerv, таймер настроить пыталась, но у меня ничего не работало.
В коде задействовала
Код:
Application.EnableEvents = False
...
Application.EnableEvents = True
kuklp, событие Calculate использовала. В общем теперь проблема решена, всё работает.

Спасибо!
Asblue вне форума Ответить с цитированием
Старый 04.11.2011, 11:32   #7
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
Радость

так поделитесь примерчиком, мне бы было интересно посмотреть как вы сделали.
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 13.12.2011, 16:47   #8
Alastar31
Новичок
Джуниор
 
Регистрация: 13.12.2011
Сообщений: 1
По умолчанию

Asblue, поделитесь, пожалуйста, макросом, alexander-inv3@nxt.ru, заранее Спасибо-)
Alastar31 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение истории изменения значений ячеек в таблице Excel 2 Asblue Microsoft Office Excel 1 27.10.2011 23:22
Сохранение истории изменения значений ячеек в таблице Excel Asblue Microsoft Office Excel 2 26.10.2011 10:27
Сохранение данных с защитой от изменения marina15056 Помощь студентам 6 15.09.2010 08:38
Экспорт значений с Excel в Word sated Microsoft Office Excel 5 03.09.2010 12:36
Изменения данных большого числа ячеек NDEV Microsoft Office Excel 2 21.11.2008 13:49