Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/создание макроса поиска сравнения и выдачи результата - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » создание макроса поиска сравнения и выдачи результата (Макросы/Sub)
создание макроса поиска сравнения и выдачи результата
djony Дата: Пятница, 05.06.2020, 15:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
есть данные. имя фамилия отчество нужно со второго листа найти в 1 м листе и есть совпадения сравнить баллы, если есть различия выдать ответ в виде имя фамилия отчество и данные о балах из 1 го листа и 2 го листа. ответ давать в 3 листе
К сообщению приложен файл: 7827714.xlsx (10.3 Kb)
 
Ответить
Сообщениеесть данные. имя фамилия отчество нужно со второго листа найти в 1 м листе и есть совпадения сравнить баллы, если есть различия выдать ответ в виде имя фамилия отчество и данные о балах из 1 го листа и 2 го листа. ответ давать в 3 листе

Автор - djony
Дата добавления - 05.06.2020 в 15:08
Kuzmich Дата: Пятница, 05.06.2020, 16:09 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
есть совпадения сравнить баллы

[vba]
Код
'запускать при активном лист2
Sub iCompare()
Dim i As Long
Dim iLastRow As Long
Dim iLR As Long
Dim List1 As Worksheet
Dim List3 As Worksheet
Dim FoundFIO As Range
Dim j As Integer
iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Set List1 = ThisWorkbook.Worksheets("Лист1")
  Set List3 = ThisWorkbook.Worksheets("Лист3")
    List3.Cells.Clear
For i = 2 To iLastRow
   With List1
     Set FoundFIO = .Columns(1).Find(Cells(i, "A"), , xlValues, xlWhole)
     If Not FoundFIO Is Nothing Then
      If FoundFIO.Offset(, 1) = Cells(i, "B") And FoundFIO.Offset(, 2) = Cells(i, "C") Then
        iLR = List3.Cells(List3.Rows.Count, "A").End(xlUp).Row + 1
        List3.Cells(iLR, 1) = .Cells(FoundFIO.Row, 1)
        List3.Cells(iLR, 2) = .Cells(FoundFIO.Row, 2)
        List3.Cells(iLR, 3) = .Cells(FoundFIO.Row, 3)
       For j = 4 To 6
        List3.Cells(iLR, j) = .Cells(FoundFIO.Row, j) & " - " & Cells(i, 4)
       Next
      End If
     End If
   End With
Next
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
есть совпадения сравнить баллы

[vba]
Код
'запускать при активном лист2
Sub iCompare()
Dim i As Long
Dim iLastRow As Long
Dim iLR As Long
Dim List1 As Worksheet
Dim List3 As Worksheet
Dim FoundFIO As Range
Dim j As Integer
iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Set List1 = ThisWorkbook.Worksheets("Лист1")
  Set List3 = ThisWorkbook.Worksheets("Лист3")
    List3.Cells.Clear
For i = 2 To iLastRow
   With List1
     Set FoundFIO = .Columns(1).Find(Cells(i, "A"), , xlValues, xlWhole)
     If Not FoundFIO Is Nothing Then
      If FoundFIO.Offset(, 1) = Cells(i, "B") And FoundFIO.Offset(, 2) = Cells(i, "C") Then
        iLR = List3.Cells(List3.Rows.Count, "A").End(xlUp).Row + 1
        List3.Cells(iLR, 1) = .Cells(FoundFIO.Row, 1)
        List3.Cells(iLR, 2) = .Cells(FoundFIO.Row, 2)
        List3.Cells(iLR, 3) = .Cells(FoundFIO.Row, 3)
       For j = 4 To 6
        List3.Cells(iLR, j) = .Cells(FoundFIO.Row, j) & " - " & Cells(i, 4)
       Next
      End If
     End If
   End With
Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 05.06.2020 в 16:09
djony Дата: Понедельник, 08.06.2020, 11:00 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
В таблице 2 листа. Нужно находить в 1 листе ФИО, после находить эту же во в 2 листе. После того как найдены данные сравнивать баллы и если есть расхождения в баллах между 1 и вторым листом, выдавать список или ФИО или номера строк где были изменения. Если изменений нет в сравненнии с 1 и 2 листом соответсвенно пропускать. список может достигать до 3000 строк и больше. Спасибо заранее за помощ
К сообщению приложен файл: 9803922.xlsx (43.6 Kb)
 
Ответить
СообщениеВ таблице 2 листа. Нужно находить в 1 листе ФИО, после находить эту же во в 2 листе. После того как найдены данные сравнивать баллы и если есть расхождения в баллах между 1 и вторым листом, выдавать список или ФИО или номера строк где были изменения. Если изменений нет в сравненнии с 1 и 2 листом соответсвенно пропускать. список может достигать до 3000 строк и больше. Спасибо заранее за помощ

Автор - djony
Дата добавления - 08.06.2020 в 11:00
Kuzmich Дата: Понедельник, 08.06.2020, 23:17 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Куда выдавать список или ФИО или номера строк при несовпадении сумм у одинаковых ФИО???
Суммы сравнивать по столбцу С?
Хотя, что выводить, если у вас все суммы совпадают.
 
Ответить
СообщениеКуда выдавать список или ФИО или номера строк при несовпадении сумм у одинаковых ФИО???
Суммы сравнивать по столбцу С?
Хотя, что выводить, если у вас все суммы совпадают.

Автор - Kuzmich
Дата добавления - 08.06.2020 в 23:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » создание макроса поиска сравнения и выдачи результата (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!