С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
Excel

Поиск по столбцу и отображение данных в форме

20.12.2019, 20:38. Показов 2648. Ответов 12

Студворк — интернет-сервис помощи студентам
Всем привет, и с наступающим новым годом!
Уже две недели изучаю форумы, но так и не могу найти ответ на мой вопрос.
Есть столбец на листе excel, есть форма для поиска по этому столбцу.
Вбиваю искомое значение в текстбоксе, появляются строки с совпадением в листбоксе. Когда дважды нажимаем на результат в листбоксе, выходит вторая форма, в которой подробнее показывается информация о строке. Для отображения информации на втором листе создается таблица: первый столбец - номер по списку, второй - единица, третий должен индексировать номер строки из первого листа, но никак не могу сообразить как это сделать!
Код тестбокса:

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
Private Sub TextBox1_Change()
Dim LastRow As Long, i As Long, x As Long, Arr(), kol As Integer, il As Integer
 
    Me.LB1.Clear
    Sheets(2).Activate
    Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Select
    Selection.ClearContents
''добавление значения
    kol = 1
    il = 0
    With Sheets("Мастер")
        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = .Range(.Cells(3, 1), .Cells(LastRow, 5)).Value
    End With
    With LB1
        For i = 1 To UBound(Arr)
            If UCase(Arr(i, 2)) Like "*" & UCase(TextBox1) & "*" Then
                .AddItem ""
                .list(x, 0) = i + 1
                .list(x, 1) = Arr(i, 1)
                .list(x, 2) = Arr(i, 2)
                .list(x, 3) = Arr(i, 3)
                .list(x, 4) = Arr(i, 4)
                .list(x, 5) = Arr(i, 5)
                
                Cells(kol, 1) = CStr(kol)
    Cells(kol, 2) = "1"
    Cells(kol, 3) = CStr(i1 + 5)
                kol = kol + 1
                x = x + 1
                il = il + 1
 
            End If
        Next
   End With
End Sub
Код листбокса:

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
Private Sub LB1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim pokaz, list As Integer
Dim klass As String
pokaz = Val(Лист6.Cells(LB1.ListIndex + 1, 3))
TB1.Text = pokaz
If Лист6.Cells(LB1.ListIndex + 1, 2) = "1" Then
Sheets(1).Activate
list = 1
klass = "Мастер"
End If
 
UserForm2.TB1.Text = Cells(pokaz, 2)
UserForm2.TB2.Text = Cells(pokaz, 3)
UserForm2.TB3.Text = Cells(pokaz, 4)
UserForm2.TB4.Text = Cells(pokaz, 6)
UserForm2.TB5.Text = Cells(pokaz, 5)
UserForm2.TB6.Text = Cells(pokaz, 8)
UserForm2.TB7.Text = Cells(pokaz, 7)
UserForm2.TB8.Text = Cells(pokaz, 9)
UserForm2.TB10.Text = Cells(pokaz, 11)
UserForm2.TB11.Text = Cells(pokaz, 10)
UserForm2.TB13.Text = CStr(pokaz - 5)
UserForm2.ind2.Text = CStr(list)
UserForm2.TB9.Text = klass
UserForm2.Show
End Sub
Скорее всего ошибка в коде текстбокса.
Заранее всем спасибо за помощь!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2019, 20:38
Ответы с готовыми решениями:

Поиск по базе данных - по определенному столбцу
Подскажите как организовать поиск по определенному столбцу базы данных и потом присвоить найденное значение переменной.

Из таблицы ADOTable на одной форме произвести поиск по столбцу и найденное скопировать в ADOTAble другой
Добрый день уважаемые знатоки, сегодня с вами играет студент из Крыма. Внимание вопрос: Необходимо из таблицы ADOTable на одной форме...

База данных ветклиника, отображение выбранных данных в другой форме!
Здравствуйте, помогите пож-ста. Есть база данных, мне нужно организовать в главной форме Карта Животного поиск по фамилии. В главной форме...

12
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
20.12.2019, 20:44  [ТС]
Вот скрины
Миниатюры
Поиск по столбцу и отображение данных в форме   Поиск по столбцу и отображение данных в форме  
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
21.12.2019, 06:33
Schwappess, а я никак не пойму эту фразу, может вы так хитро обозвали номер строки активной ячейки первого листа? Тогда так - ActiveCell.Row при этом первый лист должен быть активным
Цитата Сообщение от Schwappess Посмотреть сообщение
третий должен индексировать номер строки из первого листа,
0
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
21.12.2019, 10:35  [ТС]
Может неправильно выражаюсь. Мне нужно, чтобы в третьем столбце возвращался номер строки, если результат поиска содержится в искомой ячейке.
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
21.12.2019, 12:20
Schwappess, да с выражением своих мыслей у вас плохо. Что значит
Цитата Сообщение от Schwappess Посмотреть сообщение
результат поиска содержится в искомой ячейке.
ведь если вы знаете уже искомую ячейку, то чего ещё искать-то? Может вы просто должны записать номер строки ячейки, если вы нашли в ней то, что искали? Да и я не вижу в вашем коде где что-то бы искалось в ячейках.
0
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
21.12.2019, 12:49  [ТС]
Да, нужен номер строки.
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
21.12.2019, 13:20
Schwappess, а где и что искать, пальцем ткните. Вы же ищете в листбоксе, а найти надо строку на странице эксель?
0
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
21.12.2019, 13:27  [ТС]
Ищем в столбцах первого листа, результаты размещаем в листбоксе, и при двойном нажатии на листбокс выходит вторая форма, в которой показывается полная информация по этой строке. Вот поиск и отображение, здесь всё работает:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
With Sheets("Мастер")
        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Arr = .Range(.Cells(3, 1), .Cells(LastRow, 5)).Value
    End With
    With LB1
        For i = 1 To UBound(Arr)
            If UCase(Arr(i, 2)) Like "*" & UCase(TextBox1) & "*" Then
                .AddItem ""
                .list(x, 0) = i + 1
                .list(x, 1) = Arr(i, 1)
                .list(x, 2) = Arr(i, 2)
                .list(x, 3) = Arr(i, 3)
                .list(x, 4) = Arr(i, 4)
                .list(x, 5) = Arr(i, 5)
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
21.12.2019, 14:16
Schwappess, а где и что не получается?
0
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
21.12.2019, 14:25
Цитата Сообщение от Schwappess Посмотреть сообщение
Да, нужен номер строки.
Цитата Сообщение от Schwappess Посмотреть сообщение
.list(x, 0) = i + 1
так вот же он, только нужно чуть скорректировать на значение сдвига по листу.
0
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
21.12.2019, 14:36  [ТС]
вот файл. Помогите пожалуйста!
Вложения
Тип файла: rar программа2.rar (39.5 Кб, 13 просмотров)
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
21.12.2019, 16:18
Лучший ответ Сообщение было отмечено Schwappess как решение

Решение

Schwappess,

Посмотрите прикрепленный файл...
Вложения
Тип файла: rar NF1.rar (24.5 Кб, 57 просмотров)
1
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 8
21.12.2019, 16:49  [ТС]
Спасибо большое!! Очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2019, 16:49
Помогаю со студенческими работами здесь

Отображение данных БД на форме
Подскажите,нужно вывести данные из бд ,(таблицы 1) на форму в с#, а именно в textBox-ы например, фио студента в один textBox, адрес в...

Отображение данных в форме
Добрый день. У меня есть таблица(фио и адрес) и форма. Подскажете, пожалуйста, как сделать так, чтобы при открытии формы я мог вводить...

Найти следующую ячейку. Поиск ячеек в таблице и их отображение в форме
Добрый день. Есть следующая форма и следующий код: Скрин формы Option Explicit Public PesqTotver As String

Отображение данных таблиц в форме
Доброго дня! Я новичок в отношении баз данных, и возник вопрос-проблема. Итак, есть несколько связанных таблиц, под них сооружена форма,...

Отображение данных из отчета в форме
Форумисты :) подскажите, можно ли сделать, чтоб суммированные позиции из отчета выводились в форме в определенном поле? И менялись в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru