Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
1

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

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

Author24 — интернет-сервис помощи студентам
Запуск процедуры при изменении данных в диапазоне ячеек, данные меняются в течении всего рабочего дня,путем трансляции данных из платформы 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2018, 17:10
Ответы с готовыми решениями:

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

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

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

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

2
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.02.2018, 17:25 2
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
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
26.02.2018, 17:28  [ТС] 3
Спасибо, вот и думал по поводу Worksheet_Calculate().Буду ковырять)
0
26.02.2018, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2018, 17:28
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru