0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
1

Нужно написать макрос для кнопки

17.09.2019, 09:22. Показов 1191. Ответов 9

Author24 — интернет-сервис помощи студентам
Нужна помощь написать макрос для кнопки "поиск", что бы внести данные в листе"Ввод" оно сравнивала и выводила результат в листе"результат". Вложение 1067286
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2019, 09:22
Ответы с готовыми решениями:

Нужно написать формулу или небольшой макрос, для вас будет легко)
Вообщем для меня это сложно, для вас думаю не составит проблем составить формулу или макрос. Нужно...

Макрос для imdb, который бы по нажатию кнопки заполнял столбцы
Помогите написать макрос, который бы по нажатию кнопки заполнял столбцы. Исходные данные: ссылка...

Что нужно формулы или макрос для решения
Здравствуйте!Помогите пожалуйста с решением, описание задачи в файле пример.

Написать макрос для работы в копии документа и защиты оригинала от копирования
Здравствуйте, форумчане! Подскажите решение... Есть книга-таблица в эксель для работы с...

9
371 / 269 / 93
Регистрация: 18.11.2015
Сообщений: 997
17.09.2019, 09:41 2
Вложения нет
0
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
17.09.2019, 11:07  [ТС] 3
Лист Microsoft Excel.xlsx
0
371 / 269 / 93
Регистрация: 18.11.2015
Сообщений: 997
17.09.2019, 11:19 4
Результат нужен при совпадении только всех шести полей?
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
17.09.2019, 11:34  [ТС] 5
нет при совпадения хоть одного из полей, но вывод результата всех полей )
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
17.09.2019, 14:45 6
айнур2310,

При совпадении только имени (или фамилии) или любого одного поля ( не знаю что такое СНИЛС), может возникнуть ошибка. К примеру:

Иван Иванович Иванов & Иван Иванович Ванштейн

....
0
371 / 269 / 93
Регистрация: 18.11.2015
Сообщений: 997
17.09.2019, 15:16 7
Лучший ответ Сообщение было отмечено айнур2310 как решение

Решение

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
52
53
54
55
56
57
Sub ПОИСК()
AllFind = Sheets("Ввод данных").Range("A1").SpecialCells(xlLastCell).Row
'AllFind = Application.WorksheetFunction.CountA(Sheets("Ввод данных").Range("A:A"))
Dim rFind As Range
b = 2
For a = 2 To AllFind
 
 
If Cells(a, 4) <> "" Then ItemFind = "СНИЛС"
If Cells(a, 5) <> "" Then ItemFind = "Удост"
If Cells(a, 2) <> "" Then ItemFind = "Фамилия"
 
    Select Case ItemFind
 
    Case Is = "СНИЛС"
    With ThisWorkbook.Worksheets("База данных").[D:D]
                 Set rFind = .Find(Cells(a, 4), , xlValues, xlWhole)
                 If Not rFind Is Nothing Then
                 Sheets("Результат").Cells(b, 1) = rFind(1, -2)
                 Sheets("Результат").Cells(b, 2) = rFind(1, -1)
                 Sheets("Результат").Cells(b, 3) = rFind(1, 0)
                 Sheets("Результат").Cells(b, 4) = rFind(1, 1)
                 Sheets("Результат").Cells(b, 5) = rFind(1, 2)
                 Sheets("Результат").Cells(b, 6) = rFind(1, 3)
                 b = b + 1
                 End If
    End With
    Case Is = "Удост"
    With ThisWorkbook.Worksheets("База данных").[E:E]
                 Set rFind = .Find(Cells(a, 5), , xlValues, xlWhole)
                 If Not rFind Is Nothing Then
                 Sheets("Результат").Cells(b, 1) = rFind(1, -3)
                 Sheets("Результат").Cells(b, 2) = rFind(1, -2)
                 Sheets("Результат").Cells(b, 3) = rFind(1, -1)
                 Sheets("Результат").Cells(b, 4) = rFind(1, 0)
                 Sheets("Результат").Cells(b, 5) = rFind(1, 1)
                 Sheets("Результат").Cells(b, 6) = rFind(1, 2)
                 b = b + 1
                 End If
    End With
    Case Is = "Фамилия"
    With ThisWorkbook.Worksheets("База данных").[B:B]
                 Set rFind = .Find(Cells(a, 2), , xlValues, xlWhole)
                 If Not rFind Is Nothing Then
                 Sheets("Результат").Cells(b, 1) = rFind(1, 0)
                 Sheets("Результат").Cells(b, 2) = rFind(1, 1)
                 Sheets("Результат").Cells(b, 3) = rFind(1, 2)
                 Sheets("Результат").Cells(b, 4) = rFind(1, 3)
                 Sheets("Результат").Cells(b, 5) = rFind(1, 4)
                 Sheets("Результат").Cells(b, 6) = rFind(1, 5)
                 b = b + 1
                 End If
    End With
    End Select
 ItemFind = ""
Next a
End Sub
Добавлено через 3 минуты
Сначала проверяет уникальные идентификаторы 1 СНИЛС, 2 Удостоверение Затем Фамилию.
Главное условие - если в поиске заполнен "СНИЛС" или "Удостоверение", то "Фамилия" оставьте пустым

Добавлено через 3 минуты
Хотя для Фамилии, конечно лучше проверку ФИО + вывести всех однофамильцев. Чуть позже допишу
1
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
18.09.2019, 07:36  [ТС] 8
ArtNord, поможешь код дописать ?)
0
371 / 269 / 93
Регистрация: 18.11.2015
Сообщений: 997
18.09.2019, 08:23 9
Да, что-то поменялось или то что я хотел дописать?
0
0 / 0 / 0
Регистрация: 11.09.2015
Сообщений: 29
18.09.2019, 08:25  [ТС] 10
ArtNord, то что вы хотели дописать))
0
18.09.2019, 08:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2019, 08:25
Помогаю со студенческими работами здесь

Написать макрос для сбора данных с разных листов, сверяя поля.
Как реализовать макрос , что бы по нажатию на кнопку он считывал данные с нескольких страниц и...

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

Нужно написать программу, что бы при нажатии кнопки, появлялись другие кнопки, а та пропадала
То есть, нас перекидало на другую форму, но она должна быть на месте первой, и первая должна...

Макрос: Написать макрос по сравнению двух таблиц для нахождения несоответствий...
знатоки, прошу помощи в еще одном деле: есть два листа, --в одном список: яблоко, груша, слива, ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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