Автор Тема: Поиск и выделение ячеек которых нет в базе  (Прочитано 662 раз)

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Добрый день. Помогите пожалуйста. Потихоньку осваиваю VBA.

Условие: Есть база Сварщиков на листе2, вставляю данные в лист 1 и допускаю ошибку.
Задача: Кнопку что бы код сверил с базой и выделил красным значение которого нет в базе.(пустые не трогал)
Даже не знаю с какой стороны подойти что бы написать.


Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #1 : 04 Октябрь 2022, 08:07 »
репа чешится, но даже из чего собрать код не представляю

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #2 : 04 Октябрь 2022, 08:50 »
https://forumvba.ru/index.php?topic=2124.msg12773#msg12773 относится к этой теме, поиск по значению

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #3 : 04 Октябрь 2022, 09:42 »
Sub poisk()
With Worksheets(1).Range("J2:J500")
  Set c = .Find("ЧТО ПОСТАВИТЬ ЧТО БЫ ИСКАЛ ЗНАЧЕНИЯ ПО БАЗЕ ИЗ ЛИСТА2 A2;A500, LookIn:=xlValues, LookAt:=xlWhole)
  If Not c Is Nothing Then
    firstResult = c.Address
    Do
      c.Font.Color = RGB(255, 0, 0)
      Set c = .FindNext(c)
      If c Is Nothing Then Exit Do
    Loop While c.Address <> firstResult
  End If
End With

End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 2162
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #4 : 04 Октябрь 2022, 15:32 »
Вы решили свою задачу? Вам помощь больше не нужна?

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #5 : 05 Октябрь 2022, 04:24 »
нет проблема так и не была решена.

Оффлайн Администратор

  • Administrator
  • Сообщений: 2162
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #6 : 05 Октябрь 2022, 06:27 »
А что вы хотели показать кодом из ответа 3?
Вы просто выложили код без каких-либо пояснений.

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #7 : 05 Октябрь 2022, 07:38 »
ф предполагал что после .Find можно вставить не точное значение а диапозон. Информации что эта функция может перебирать значение я не нашел(если только в ручную не внести весь столбец).
Перебрав все, я понял что нужно искать массив в массие  и различия подкрасить в листе 1.  пробовал еще пару но без успешно( 

Оффлайн Администратор

  • Administrator
  • Сообщений: 2162
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #8 : 05 Октябрь 2022, 09:49 »
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Для Find указывайте все параметры, т.к. Find связан с диалоговым окном "Найти и заменить" и если вы какой-то параметр не укажите, то макрос возьмёт этот параметр из диалогового окна "Найти и заменить". Единственное, не нужно указывать параметр "After".

Макрос
Sub Poisk()

    Dim Лист1 As Worksheet, ЛистСварщики As Worksheet
    Dim i As Long
   
   
    ' Присваиваем имена листам, чтобы через эти имена обращаться к листам.
    Set Лист1 = Worksheets(1)
    Set ЛистСварщики = Worksheets(2)
   
    ' Движение по Листу 1, со строки 2 до 500.
    For i = 2 To 500
        If ЛистСварщики.Range("A2:A500").Find(What:=Лист1.Cells(i, "J").Value, _
                LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
            Лист1.Cells(i, "J").Interior.Color = RGB(255, 0, 0)
        End If
    Next i

End Sub

Оффлайн Noob2

  • Посетитель форума
  • Сообщений: 11
Re: Поиск и выделение ячеек которых нет в базе
« Ответ #9 : 28 Октябрь 2022, 03:53 »
Спасибо.  Надо было представить диапазон как цикл.