Аватар для Sheriffk018
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101

Запуск процедуры при изменении данных в диапазоне ячеек( трансляция данных через DDE сервер)

26.02.2018, 17:10. Показов 1189. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Запуск процедуры при изменении данных в диапазоне ячеек, данные меняются в течении всего рабочего дня,путем трансляции данных из платформы Quik в Exel через DDE сервер, то есть я ручками там ничего не меняю.
С таргетом вроде разобрался но как запускать если они там сами меняются??
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub Pavel()
        Dim Month As Variant 'Переменная месяца торгуемого инструмента
        Month = ThisWorkbook.Sheets("Настройки").Cells(2, 9) 'Присваевеам значение переменной месяца торгуемого инструмента
        Dim Year As Variant 'Переменная года торгуемого инструмента
        Year = ThisWorkbook.Sheets("Настройки").Cells(2, 11) 'Присваевеам значение переменной года торгуемого инструмента
        Dim TestTable1 As Variant 'Спецификация месяца
        TestTable1 = ThisWorkbook.Sheets("Настройки").[M2:N13]
        Dim TestTable2 As Variant 'Инструменты
        TestTable2 = ThisWorkbook.Sheets("Настройки").[H5:H42]
        Dim TestTable3 As Variant 'Таблица обязательных параметров для ввода
        TestTable3 = ThisWorkbook.Sheets("Настройки").[G5:K42]
        Dim TestTable4 As Variant 'Таблица Данные транслируемые из платформы Quik
        TestTable4 = ThisWorkbook.Sheets("Настройки").[Q1:V59]
        Dim TestTable5 As Variant 'Таблица Рисков
        TestTable5 = ThisWorkbook.Sheets("Лист1").[A1:P42]
    For i = 1 To 12
        Select Case Month 'Торгуемый месяц
            Case Is = TestTable1(i, 1) 'Равен ли торгуемый месяц коду месяца в спецификациях?
                For j = 1 To 38
                    TestTable3(j, 3) = TestTable1(i, 2) 'Если равент, тогда присваеваем код месяца
                    x = Year 'Торгуемый год
                    TestTable3(j, 4) = CInt(Right(x, 1)) ' Вставляем код года
                    TestTable3(j, 5) = TestTable3(j, 2) & TestTable3(j, 3) & TestTable3(j, 4) 'Склеиваем данные по инструменту
                    ThisWorkbook.Sheets("Настройки").Cells(j + 4, 9) = TestTable3(j, 3) 'Вставляем месяц
                    ThisWorkbook.Sheets("Настройки").Cells(j + 4, 10) = TestTable3(j, 4) 'Вставляем год
                    ThisWorkbook.Sheets("Настройки").Cells(j + 4, 11) = TestTable3(j, 5) 'Вставляем склеянные данные
                    For k = 3 To 58
                        Select Case TestTable3(j, 5)
                        Case Is = TestTable4(k, 1)
                            For f = 1 To 1
                            TestTable5(j + 4, 2) = TestTable3(j, 2)
                            TestTable5(j + 4, 3) = TestTable3(j, 5)
                            TestTable5(j + 4, 4) = TestTable4(k, 2)
                            TestTable5(j + 4, 5) = TestTable4(k, 3)
                            TestTable5(j + 4, 6) = TestTable4(k, 4)
                            TestTable5(j + 4, 7) = TestTable4(k, 5)
                            TestTable5(j + 4, 8) = TestTable4(k, 6)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 2) = TestTable5(j + 4, 2)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 3) = TestTable5(j + 4, 3)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 4) = TestTable5(j + 4, 4)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 5) = TestTable5(j + 4, 5)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 6) = TestTable5(j + 4, 6)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 7) = TestTable5(j + 4, 7)
                            ThisWorkbook.Sheets("Лист1").Cells(j + 4, 8) = TestTable5(j + 4, 8)
                            Next
                        End Select
                    Next
                Next
            End Select
        Next
End Sub
Запускать нужно при изменении данных в диапазоне Q1:V59.
Кто знает помогите решить задачку.Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2018, 17:10
Ответы с готовыми решениями:

Изменение цвета двух ячеек при изменении данных двух других ячеек
Всем привет! Нужна помощь. Вопрос такой: Есть два столбца А и В и два зависимых от них столбцы C и D. В столбце C и D уже введены те...

Ошибка при изменении данных через Entity Framework
Столкнулся с проблемой обновления данных, сам еще новичок в Entity. Добавляет в таблицу все ок, но стоит изменить данные как тут же...

Обработка события получения данных в Excel через DDE
Суть проблемы в следующем: есть приложение QUIK, в котором я создаю DDE-сервер (указывая приложение, книгу, лист, ячейки). Это приложение...

2
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.02.2018, 17:25
Sheriffk018, в модуль листа, на который приходят данные по DDE: правый клик по ярлычку листа - Исходный текст
Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_Calculate()
  On Error Resume Next
  Application.EnableEvents = False
  Pavel
  Application.EnableEvents = True
End Sub
Чтобы событие происходило при изменении ячеек, на листе в какой-нибудь ячейке надо разместить "летучую" функцию, например =ТДАТА()
1
 Аватар для Sheriffk018
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
26.02.2018, 17:28  [ТС]
Спасибо, вот и думал по поводу Worksheet_Calculate().Буду ковырять)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2018, 17:28
Помогаю со студенческими работами здесь

Изменение данных в диапазоне ячеек
Добрый день! Помогите пожалуйста решить проблему! Есть лицевые счета абонентов шести и семизначные! Как их преобразовать в 12-ти...

Копирование данных в заданном диапазоне ячеек
Всем добрый день, помогите пожалуйста!!! Нужно написать скрипт, что бы он на листе 1 в Excel искал по указанному диапазону А1:A20, ячейки...

Организовать совместную работу с обновлением данных на всех клиентах при изменении данных на одном
Добрый день! Решил сделать небольшое клиент серверное приложение (MS SQL => WCF Services => WPF Client) и не знаю, как организовать...

Разработка процедуры по последовательному изменении данных в таблице
Доброго времени суток форумчане! Прошу Вашей помощи. В форме "frmBipyck_OTK_RA" находятся данные, которые должны измениться...

При подключении базы данных в источниках данных отображаются не все процедуры
Всем добрый вечер! Подскажите, как решить проблему: при подключении базы данных в источниках данных отображаются две хранимые процедуры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
Мысли в слух
kumehtar 29.10.2025
Обнаружил, что мысли лучше писать короткими фразами. Таким образом внимание читателя успевает охватить всю фразу сразу, за один раз, не соскакивая и не прерываясь. А если писать это длинным текстом,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru