Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Сравнить вводимое значение с данными столбца и подставить значение

Автор Чивап1959, 05.09.2021, 20:37:22

« назад - далее »

Чивап1959

Добрый всем час.  Задача: при вводе оператором номера ID, он должен видеть актуальную информацию - значение для процедур. Или хотя бы итоговые суммы. При этом крайне важно, чтобы время на обработку было минимальным. Алгоритм работы: при вводе ID происходит сравнение с реестром уникальных (он создается ранее) и данные получаемых результатов вносятся в соответствующие поля.
Или такое не возможно?!

vikttur

Где оператор вводит ID?
Исходные данные - Лист1? Какая логика составления таблицы на Лист2?

Kuzmich

При вводе некоторых ID не сошлись суммы Итог
Макрос в модуль Листа2
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then
    Application.EnableEvents = False
Dim FoundID As Range
Dim FAdr As String
Dim LastCol As Integer
Dim j As Integer
  With Worksheets("Лист1")
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    Set FoundID = .Columns("A").Find(Target, , xlValues, xlWhole)
      If Not FoundID Is Nothing Then
        FAdr = FoundID.Address
        j = 1
        Do
          Target.Offset(, j) = WorksheetFunction.Sum(.Range(.Cells(FoundID.Row, 3), _
                                                  .Cells(FoundID.Row, LastCol)))
          Set FoundID = .Columns("A").FindNext(FoundID)
          j = j + 1
        Loop While FoundID.Address <> FAdr
          Target.Offset(, j) = WorksheetFunction.Sum(Range(Cells(Target.Row, 2), _
                                                  Cells(Target.Row, 4)))
      End If
  End With
End If
    Application.EnableEvents = True
End Sub

Чивап1959

Оператор получает значения считывателем меток ID на 1 лист, выбирает процедуру и получает значение с весов. На 2 список уникальных ID к которым и должно происходить подстановка значений. Формулами СУММЕСЛИМН оооочень долго. Десятки тысяч значений.
Все данные со 2 листа выводятся на форму, на которой оператор должен сразу увидеть изменения значений.

Kuzmich

А зачем два одинаковых сообщения? И где у вас вывод данных с листа2 на форму?

Чивап1959

Уважаемый Kuzmich! Я пока не разобрался в навигации, поэтому случайно получилось задвоение. Файл-упрощённая схема достаточно большой программы, где всё нормально работает. Буду благодарен, если поможете внести изменения в в свой код. Данные приходят на 1 лист, а результаты выводятся на 2 листе. Но итоговые значения на 2 листе  должны быть в колонке Е. Даже если не все процедуры пройдены. Спасибо!!!

Kuzmich

Оператор получает значения считывателем меток ID на 1 лист - в какую ячейку. В конец ли колонки А? Каковы дальнейшие действия оператора, опишите подробнее?
И вы не ответилиИ где у вас вывод данных с листа2 на форму?

Яндекс.Метрика Рейтинг@Mail.ru