Импорт динамических данных
Alex12345
Дата: Вторник, 14.04.2015, 17:35 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
В ячейку импортируются данные из программы с определенной частотой. Есть макрос, который записывает данные в столбец, но его приходится запускать вручную. Необходимо, чтоб старые значения сохранялись автоматически, формируя столбец (Макрос должен запускаться автоматически при импорте нового числа. Или другое решение).
В ячейку импортируются данные из программы с определенной частотой. Есть макрос, который записывает данные в столбец, но его приходится запускать вручную. Необходимо, чтоб старые значения сохранялись автоматически, формируя столбец (Макрос должен запускаться автоматически при импорте нового числа. Или другое решение). Alex12345
К сообщению приложен файл:
__.xlsm
(15.5 Kb)
Сообщение отредактировал Alex12345 - Вторник, 14.04.2015, 17:39
Ответить
Сообщение В ячейку импортируются данные из программы с определенной частотой. Есть макрос, который записывает данные в столбец, но его приходится запускать вручную. Необходимо, чтоб старые значения сохранялись автоматически, формируя столбец (Макрос должен запускаться автоматически при импорте нового числа. Или другое решение). Автор - Alex12345 Дата добавления - 14.04.2015 в 17:35
nilem
Дата: Вторник, 14.04.2015, 18:02 |
Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Alex12345 , привет попробуйте, например, так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) Application.EnableEvents = True End Sub
[/vba]
Alex12345 , привет попробуйте, например, так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) Application.EnableEvents = True End Sub
[/vba]nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Alex12345 , привет попробуйте, например, так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) Application.EnableEvents = True End Sub
[/vba]Автор - nilem Дата добавления - 14.04.2015 в 18:02
KSV
Дата: Вторник, 14.04.2015, 18:42 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
nilem , вместо этого: [vba]Код
Range("E8:G8").Value = Array(Range("E6"), "", Range("G6"))
[/vba] можно сразу так: [vba]Код
Range("E8:G8") = Range("E6:G6").Value
[/vba]
nilem , вместо этого: [vba]Код
Range("E8:G8").Value = Array(Range("E6"), "", Range("G6"))
[/vba] можно сразу так: [vba]Код
Range("E8:G8") = Range("E6:G6").Value
[/vba]KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение nilem , вместо этого: [vba]Код
Range("E8:G8").Value = Array(Range("E6"), "", Range("G6"))
[/vba] можно сразу так: [vba]Код
Range("E8:G8") = Range("E6:G6").Value
[/vba]Автор - KSV Дата добавления - 14.04.2015 в 18:42
nilem
Дата: Вторник, 14.04.2015, 19:12 |
Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
KSV , ну ведь с Array интереснее
KSV , ну ведь с Array интереснее nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение KSV , ну ведь с Array интереснее Автор - nilem Дата добавления - 14.04.2015 в 19:12
KSV
Дата: Вторник, 14.04.2015, 20:49 |
Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
а так понятнее и быстрее
а так понятнее и быстрее KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение а так понятнее и быстрее Автор - KSV Дата добавления - 14.04.2015 в 20:49
Alex12345
Дата: Вторник, 14.04.2015, 21:25 |
Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Что то не выходит... Что я не так сделал?
Что то не выходит... Что я не так сделал? Alex12345
Ответить
Сообщение Что то не выходит... Что я не так сделал? Автор - Alex12345 Дата добавления - 14.04.2015 в 21:25
Manyasha
Дата: Вторник, 14.04.2015, 21:32 |
Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Alex12345 , здравствуйте. А данные в ячейки E6 и G6 импортируются одновременно? Попробуйте убрать строчку[vba]Код
If Target.Count > 1 Then Exit Sub
[/vba]
Alex12345 , здравствуйте. А данные в ячейки E6 и G6 импортируются одновременно? Попробуйте убрать строчку[vba]Код
If Target.Count > 1 Then Exit Sub
[/vba]Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Alex12345 , здравствуйте. А данные в ячейки E6 и G6 импортируются одновременно? Попробуйте убрать строчку[vba]Код
If Target.Count > 1 Then Exit Sub
[/vba]Автор - Manyasha Дата добавления - 14.04.2015 в 21:32
Alex12345
Дата: Вторник, 14.04.2015, 21:36 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Здравствуйте. Данные импортируются одновременно. Строчку убрал. Не помогло. Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает. А автоматически, само не работает.
Здравствуйте. Данные импортируются одновременно. Строчку убрал. Не помогло. Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает. А автоматически, само не работает. Alex12345
Сообщение отредактировал Alex12345 - Вторник, 14.04.2015, 21:39
Ответить
Сообщение Здравствуйте. Данные импортируются одновременно. Строчку убрал. Не помогло. Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает. А автоматически, само не работает. Автор - Alex12345 Дата добавления - 14.04.2015 в 21:36
KSV
Дата: Вторник, 14.04.2015, 21:50 |
Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
скорее всего, у вас отключены события. выполните принудительно вот эту строчку: [vba]Код
Application.EnableEvents = True
[/vba]
скорее всего, у вас отключены события. выполните принудительно вот эту строчку: [vba]Код
Application.EnableEvents = True
[/vba] KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение скорее всего, у вас отключены события. выполните принудительно вот эту строчку: [vba]Код
Application.EnableEvents = True
[/vba] Автор - KSV Дата добавления - 14.04.2015 в 21:50
Alex12345
Дата: Вторник, 14.04.2015, 22:08 |
Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
выполните принудительно вот эту строчку: Application.EnableEvents = True
Извините, не знаю как принудительно выполнить строчку.. Если не сложно, - напишите подробнее.
выполните принудительно вот эту строчку: Application.EnableEvents = True
Извините, не знаю как принудительно выполнить строчку.. Если не сложно, - напишите подробнее.Alex12345
Ответить
Сообщение выполните принудительно вот эту строчку: Application.EnableEvents = True
Извините, не знаю как принудительно выполнить строчку.. Если не сложно, - напишите подробнее.Автор - Alex12345 Дата добавления - 14.04.2015 в 22:08
KSV
Дата: Вторник, 14.04.2015, 22:23 |
Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
не нужно выполнять, у вас причина в другом... если бы были отключены события у вас бы так не сработало Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает.
нужно посмотреть, как трэйдер обновляет данные в E6 и G6
не нужно выполнять, у вас причина в другом... если бы были отключены события у вас бы так не сработало Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает.
нужно посмотреть, как трэйдер обновляет данные в E6 и G6 KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Вторник, 14.04.2015, 22:26
Ответить
Сообщение не нужно выполнять, у вас причина в другом... если бы были отключены события у вас бы так не сработало Когда ставлю курсор в ячейку Е6 и нажимаю Enter, все срабатывает.
нужно посмотреть, как трэйдер обновляет данные в E6 и G6 Автор - KSV Дата добавления - 14.04.2015 в 22:23
Alex12345
Дата: Вторник, 14.04.2015, 22:31 |
Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Нужно задать вопрос поставщику данных? Или что то другое?
Нужно задать вопрос поставщику данных? Или что то другое? Alex12345
Ответить
Сообщение Нужно задать вопрос поставщику данных? Или что то другое? Автор - Alex12345 Дата добавления - 14.04.2015 в 22:31
KSV
Дата: Вторник, 14.04.2015, 22:38 |
Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
нет. возможно, все-таки отключены события... не знаю как принудительно выполнить строчку.
вставьте в любой модуль вашей книги вот этот код, и запустите его по F5 [vba]Код
Sub TTT() Application.EnableEvents = True End Sub
[/vba]
нет. возможно, все-таки отключены события... не знаю как принудительно выполнить строчку.
вставьте в любой модуль вашей книги вот этот код, и запустите его по F5 [vba]Код
Sub TTT() Application.EnableEvents = True End Sub
[/vba] KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение нет. возможно, все-таки отключены события... не знаю как принудительно выполнить строчку.
вставьте в любой модуль вашей книги вот этот код, и запустите его по F5 [vba]Код
Sub TTT() Application.EnableEvents = True End Sub
[/vba] Автор - KSV Дата добавления - 14.04.2015 в 22:38
Alex12345
Дата: Вторник, 14.04.2015, 22:49 |
Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Все сделал. Не помогло.
Ответить
Сообщение Все сделал. Не помогло. Автор - Alex12345 Дата добавления - 14.04.2015 в 22:49
KSV
Дата: Вторник, 14.04.2015, 22:59 |
Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
А вы визуально видите, что данные в ячейках E6 и G6 обновляются? просто, у меня не установлен трэйдер и я не могу воспроизвести вашу ситуацию у себя...
А вы визуально видите, что данные в ячейках E6 и G6 обновляются? просто, у меня не установлен трэйдер и я не могу воспроизвести вашу ситуацию у себя... KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Вторник, 14.04.2015, 23:08
Ответить
Сообщение А вы визуально видите, что данные в ячейках E6 и G6 обновляются? просто, у меня не установлен трэйдер и я не могу воспроизвести вашу ситуацию у себя... Автор - KSV Дата добавления - 14.04.2015 в 22:59
Alex12345
Дата: Вторник, 14.04.2015, 23:04 |
Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Да. Визуально вижу. Числа "прыгают", обновляются постоянно. Раз в 3-4 секунды. Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО. Или... не могу точнее сформулировать. Далек от программирования. (
Да. Визуально вижу. Числа "прыгают", обновляются постоянно. Раз в 3-4 секунды. Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО. Или... не могу точнее сформулировать. Далек от программирования. ( Alex12345
Ответить
Сообщение Да. Визуально вижу. Числа "прыгают", обновляются постоянно. Раз в 3-4 секунды. Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО. Или... не могу точнее сформулировать. Далек от программирования. ( Автор - Alex12345 Дата добавления - 14.04.2015 в 23:04
KSV
Дата: Вторник, 14.04.2015, 23:08 |
Сообщение № 17
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО
тип импортируемых данных непричем. [p.s.]если хотите, можете запустить TeamViewer, кинуть мне на почту UIN и пароль - я подключусь, посмотрю. Почта в подписи. (Вы будете видеть на экране все, что я делаю)
Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО
тип импортируемых данных непричем. [p.s.]если хотите, можете запустить TeamViewer, кинуть мне на почту UIN и пароль - я подключусь, посмотрю. Почта в подписи. (Вы будете видеть на экране все, что я делаю)KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение Может ли быть такое, что импортируется другой тип данных. НЕ ЧИСЛО
тип импортируемых данных непричем. [p.s.]если хотите, можете запустить TeamViewer, кинуть мне на почту UIN и пароль - я подключусь, посмотрю. Почта в подписи. (Вы будете видеть на экране все, что я делаю)Автор - KSV Дата добавления - 14.04.2015 в 23:08
nilem
Дата: Среда, 15.04.2015, 00:03 |
Сообщение № 18
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Alex12345 , наверное, другое событие нужно использовать на листе в яч. А1, например, напишите формулу а в модуль листа вот такой код (другие коды из модуля уберите) [vba]Код
Private Sub Worksheet_Calculate() Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) End Sub
[/vba] должно получиться (где-то это было, что прием данных по ДДЕ не вызывает событие Worksheet_Change - удивительно) ну да, лучше все-таки [vba]Код
Range("E8:G8").Value = Range("E6:G6").Value
[/vba]
Alex12345 , наверное, другое событие нужно использовать на листе в яч. А1, например, напишите формулу а в модуль листа вот такой код (другие коды из модуля уберите) [vba]Код
Private Sub Worksheet_Calculate() Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) End Sub
[/vba] должно получиться (где-то это было, что прием данных по ДДЕ не вызывает событие Worksheet_Change - удивительно) ну да, лучше все-таки [vba]Код
Range("E8:G8").Value = Range("E6:G6").Value
[/vba] nilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Среда, 15.04.2015, 00:06
Ответить
Сообщение Alex12345 , наверное, другое событие нужно использовать на листе в яч. А1, например, напишите формулу а в модуль листа вот такой код (другие коды из модуля уберите) [vba]Код
Private Sub Worksheet_Calculate() Rows(8).Insert Range("E8:G8").Value = Array(Range("E6"), "", Range("G6")) End Sub
[/vba] должно получиться (где-то это было, что прием данных по ДДЕ не вызывает событие Worksheet_Change - удивительно) ну да, лучше все-таки [vba]Код
Range("E8:G8").Value = Range("E6:G6").Value
[/vba] Автор - nilem Дата добавления - 15.04.2015 в 00:03
Hugo
Дата: Среда, 15.04.2015, 00:16 |
Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация:
707
±
Замечаний:
0% ±
2019
А если на листе будут и другие формулы пересчитываться? Ещё вариант - завязать на эти ячейки невидимые текстбоксы, и использовать их события.
А если на листе будут и другие формулы пересчитываться? Ещё вариант - завязать на эти ячейки невидимые текстбоксы, и использовать их события. Hugo
excel@nxt.ru webmoney: E265281470651 Z422237915069
Ответить
Сообщение А если на листе будут и другие формулы пересчитываться? Ещё вариант - завязать на эти ячейки невидимые текстбоксы, и использовать их события. Автор - Hugo Дата добавления - 15.04.2015 в 00:16
KSV
Дата: Среда, 15.04.2015, 00:19 |
Сообщение № 20
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
nilem , да, так 100-пудово должно сработать, но так могут быть и "ложные срабатывания"... а я ему хотел предложить перевесить код на событие FollowHyperlink [vba]Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8") = Range("E6:G6").Value Application.EnableEvents = True End Sub
[/vba]
nilem , да, так 100-пудово должно сработать, но так могут быть и "ложные срабатывания"... а я ему хотел предложить перевесить код на событие FollowHyperlink [vba]Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8") = Range("E6:G6").Value Application.EnableEvents = True End Sub
[/vba]KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение nilem , да, так 100-пудово должно сработать, но так могут быть и "ложные срабатывания"... а я ему хотел предложить перевесить код на событие FollowHyperlink [vba]Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) If Intersect(Target, Range("E6,G6")) Is Nothing Then Exit Sub Application.EnableEvents = False Rows(8).Insert Range("E8:G8") = Range("E6:G6").Value Application.EnableEvents = True End Sub
[/vba]Автор - KSV Дата добавления - 15.04.2015 в 00:19