Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19.04.2024, 17:47:48

Войти
Добавляйтесь в нашу группу ВКонтакте - будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Сравнить вводимое значение с данными столбца и подставить значение
Страниц: [1]   Вниз
Печать
Автор Тема: Сравнить вводимое значение с данными столбца и подставить значение  (Прочитано 2669 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Чивап1959
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 3


Просмотр профиля E-mail
« : 05.09.2021, 20:37:22 »

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

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #1 : 05.09.2021, 21:09:56 »

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

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 169


Просмотр профиля
« Ответ #2 : 05.09.2021, 21:45:16 »

При вводе некоторых ID не сошлись суммы Итог
Макрос в модуль Листа2
Код: (vb)
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
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 3


Просмотр профиля E-mail
« Ответ #3 : 06.09.2021, 20:21:45 »

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

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 169


Просмотр профиля
« Ответ #4 : 06.09.2021, 20:35:15 »

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

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 3


Просмотр профиля E-mail
« Ответ #5 : 06.09.2021, 21:24:27 »

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

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 169


Просмотр профиля
« Ответ #6 : 06.09.2021, 21:40:38 »

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

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru