Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7

Автоматическое обновление листа с данными

23.09.2013, 18:29. Показов 4379. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста как можно автоматически обновить лист при поступлении новых данных
и в чем у меня возможная ошибка. Описание на скриншоте.

Ссылка удалена
 Комментарий модератора 
Цитата Сообщение от Правила форума
4.12. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах.


Сам код, не знаю в чем ошибка. Спец. я довольно слабый пока.

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
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim i As Integer, j As Integer
 'Application.Calculate
'If Not Intersect(Target, Range("C2:C21")) Is Nothing Then
        'Application.EnableEvents = False
          
          For j = 1 To Cells(2, 12).Value
          For i = 1 To 20
          
  If Cells(1 + j, 6).Value = Cells(1 + i, 2).Value Then
  If Cells(1 + i, 1).Value <> 0 Then
 Cells(1 + j, 5).Value = Cells(1 + j, 5).Value + Cells(1 + i, 1).Value
 Cells(1 + i, 1).Value = 0
 End If
 End If
 Next
 Next
       'Application.EnableEvents = True
   'End If
    
    
  ' If Not Intersect(Target, Range("A2:A21")) Is Nothing Then
   '    Application.EnableEvents = False
          For i = 1 To 20
          For j = 1 To Cells(2, 12).Value
  If Cells(1 + j, 6).Value = Cells(1 + i, 2).Value Then
  If Cells(1 + i, 3).Value <> 0 Then
 Cells(1 + j, 7).Value = Cells(1 + j, 7).Value + Cells(1 + i, 3).Value
 Cells(1 + i, 3).Value = 0
 End If
 End If
 Next
 Next
   'Application.EnableEvents = True
   'End If
End Sub
И сам файл.
Вложения
Тип файла: xls quik.xls (69.5 Кб, 6 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2013, 18:29
Ответы с готовыми решениями:

Заполнение 2 листа данными из 3-го листа при событии на 1-м листе
Уважаемые форумчане, добрый вечер! Бьюсь челом и молю о помощи с решением задачи! Задача очень интересная, но для моих знаний в...

Как в Excel отключить автоматическое обновление листа после каждого изменения?
Kak (i gde) v Excele otklu4it' avtomati4eskoje obnovlenije lista posle kaschdogo izmenenija? T.e., 4toby ekran ne migal vo vremja...

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

12
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
23.09.2013, 18:53
А какие данные на листе обновляются?
0
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
23.09.2013, 18:57  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
А какие данные на листе обновляются?
Ячейки столбцов А и С. Покупка и продажа. Идут из Quik Junior.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
23.09.2013, 19:09
Схему расчета приложите с учетом:
1. после обновления одной ячейки из A или С
2. или после полного обновления данных в колонках А, С
1
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
23.09.2013, 19:15  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Схему расчета приложите с учетом:
1. после обновления одной ячейки из A или С
2. или после полного обновления данных в колонках А, С
Если происходит Ваш вариант №1 (изменение в любой из ячеек А или С),
ищем туже цену (сравниваем цену в столбцах В и F) по которой произошло изменение и
суммируем данные. Это должно происходить автоматом. У меня получалось только по нажатию кнопки.
0
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
23.09.2013, 19:18  [ТС]
Вот картинка.
Миниатюры
Автоматическое обновление листа с данными  
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
23.09.2013, 19:19
Ответ не полный
Цитата Сообщение от fox.rm Посмотреть сообщение
суммируем данные
Какие именно и куда записываем? На скрипте мало что проясняет, тем более что кодом задействована ячейка (1,12)
0
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
23.09.2013, 19:20  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Ответ не полный
Какие именно и куда записываем?
Я там картинку прилепил выше.
Из продажи в продажу, из покупки в покупку.
Главное чтобы цена одна была.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
23.09.2013, 19:45
Еще один вопрос, обновление происходит каждой ячейке в отдельности или пакетно на весь диапазон?
0
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
24.09.2013, 16:13  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Еще один вопрос, обновление происходит каждой ячейке в отдельности или пакетно на весь диапазон?
Наверное по каждой отдельно. Правда я не знаю, что такое пакетно?
Ежесекундно в ячейках А1:А21, В1:В21 и С1:С21 пробегают данные
Продажа Цена Покупка.

Добавлено через 20 часов 16 минут
Цитата Сообщение от fox.rm Посмотреть сообщение
Наверное по каждой отдельно. Правда я не знаю, что такое пакетно?
Ежесекундно в ячейках А1:А21, В1:В21 и С1:С21 пробегают данные
Продажа Цена Покупка.
UP+
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
24.09.2013, 17:56
Помогаю в свободное время, поэтому и задержка.
1. Пакетно, т.е. загружается целый диапазон, например Sheets("Расчеты").Range("A2:C2")=.....
2. Первоначально я бы изменял цену, потом остальное.
3. Предлагаю следующий вариант обработки события:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zena As Range, Smech&, SmechPoisk&
    With Target
        If .Column > 3 Or .Column = 2 Or .Row = 1 Then Exit Sub
        SmechPoisk = IIf(.Column < 2, 1, -1)
        Set Zena = Range("F2:F92").Find(.Offset(0, SmechPoisk).Value)
        If Not Zena Is Nothing Then
            Smech = IIf(.Column < 2, -1, 1)
            Zena.Offset(0, Smech) = Zena.Offset(0, Smech) + .Value
            'åñëè íàäî î÷èùàòü ÿ÷åéêó ðàñêîììåíòèðóéòå íèæå ñòðîêè
            'Application.EnableEvents = False
            '.Value = 0
            'Application.EnableEvents = True
        End If
    End With
End Sub
1
0 / 0 / 0
Регистрация: 06.02.2012
Сообщений: 7
25.09.2013, 16:16  [ТС]
Цитата Сообщение от toiai Посмотреть сообщение
Помогаю в свободное время, поэтому и задержка.
..................................
3. Предлагаю следующий вариант обработки события:
Теперь буду знать. Значит изменения происходят пакетно.
Спасибо огромное, вроде работает, но почему-то при изменении
данных в ячейках они автоматически не передаются в другую таблицу,
их приходится вводить вручную заново. Почему это может быть?

Вот скрин:
Миниатюры
Автоматическое обновление листа с данными  
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
25.09.2013, 18:50
Я и предполагал, что данные вводятся пакетно, тогда надо подходить с другой стороны - использовать события пересчета, но для этого посмотрите тут:
Запуск/продолжение выполнения макроса по изменению ячейки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2013, 18:50
Помогаю со студенческими работами здесь

Автоматическое сохранение данных листа в PDF
Добрый день. Имеется код на автоматическое сохранение листов книги в формате .xlsx Dim s As Worksheet Dim wb As Workbook ...

автоматическое добавление строк из одного листа в другой
Добрый день! Прошу помочь делом или советом, любой помощи буду рад. Стоит зада следующая, есть документ, в нем 3 листа, задача...

Автоматическое заполнение строк на основании другого листа
Добрый день! Мне необходима помощь. Вопрос такой: каким образом можно сделать автоматическое заполнение строк на основе другой таблицы?...

Заполнение listbox данными с листа
Пытаюсь заполнить лист бокс данными из странцы экселя tempFC. Этот лист абсолютно верно и всегда заполняется данными из БД. Проблема в том...

Список с данными из другого листа
Здравствуйте! Я форматировал текст таблицу, назвал ее publish_list В таблице есть строка &quot;ФИО&quot;. К ней я так понял можно...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru