Страницы: 1
RSS
Поиск названия листа, в котором найдено нужное значение, Возможно ли сделать формулу или функцию, что бы в столбце E указывалось наименование листа, на котором найдено значение из столбца A?
 
Возможно ли сделать формулу или макрос, что бы в столбце E указывалось наименование листа, на котором найдено значение из столбца A?
Изменено: Volodius - 18.06.2024 16:50:56
 
Вообще да.
Но сперва покажите кто и как ищет это значение.
 
Извините, не прикрепился пример в 1м сообщении
 
Цитата
написал:
сделать формулу или функцию
только макрос с поиском значения по листам...
с моей кочки зрения, конечно... :)
Изменено: BodkhiSatva - 18.06.2024 16:49:30
 
Ну т.е. ищите вручную, и указывать поставщика тогда проще вручную. С такими данными.
Может быть Вам нужно поработать в PQ - затянуть все данные  всех поставщиков в нужном виде на один лист, и искать уже в нём да хоть привычной ВПР()
 
Hugo, c power qwerty не работал, изучу этот вопрос, спасибо
 
Или проще будет макросом, мне так точно ))
Но если говорить по файлу (задаче) - там совпадает только штрихкод, остальное всё другое, так что  тёмный лес...
На например можно сразу при открытии файла в цикле по листам поискать где лежат штрихкоды, и собрать в словарь штрихкоды с информацией где и что.
И тогда при вводе в заказ штрихкода сразу макросом можно рядом написать всё что уже собрали. Ну или быстренько поискать ))
Изменено: Hugo - 18.06.2024 17:08:28
 
Hugo, тогда смиренно жду Вашей помощи
 
Я пас, я задачу не вижу.
 
Hugo, пример во вложении
 
Ну файл и выше есть, правда странно в них работает поиск - в первом находит только один код, во втором два...
Код
Sub tt()

Dim c As Range, sh As Object, rez
    'сброс параметров поиска
    Application.FindFormat.Clear
    For Each c In [a2:a4]
    For Each sh In Sheets
        If sh.Name <> "ЗАКАЗ" Then
        Set rez = sh.Cells.Find(What:=c.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not rez Is Nothing Then MsgBox rez & " - " & rez.Parent.Name & " - " & rez.Address
        End If
    Next
    Next
End Sub


Т.е. сейчас rez.Parent.Name можно двум написать, почему криво ищет непонятно, может мой 365 глючит...
 
Hugo, у меня всё находит, правда значение выдаёт не в столбце E, а во всплывающем окне, но это всё равно мне очень поможет. Большое спасибо!
 
Так это черновик...
Вместо месиджбокса легко писать на лист, сейчас чуть доделаю.
 
Код
Sub tt()

Dim r As Range, c As Range, sh As Object, rez
    'сброс параметров поиска
    Application.FindFormat.Clear
    Set r = Range("A2", Cells(Rows.Count, "A").End(xlUp))
    For Each c In r
    For Each sh In Sheets
        If sh.Name <> "ЗАКАЗ" Then
        Set rez = sh.Cells.Find(What:=c.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not rez Is Nothing Then c.Offset(, 4).Value = rez.Parent.Name ' MsgBox rez & " - " & rez.Parent.Name & " - " & rez.Address
        End If
    Next
    Next
End Sub

Можете дальше адрес записать, или сообщение оставить.
 
"извините, был неправ, погорячился".. (с)

можно и формулой... ;)

при добавлении поставщика вложить в формулу еще 1 поиск с если...  8)
 
Hugo, спасибо!
 
BodkhiSatva, Вы мой герой!
Страницы: 1
Наверх