Страницы: 1
RSS
Поиск в листе, где формат ячеек специфический
 
Здравствуйте!

Есть база данных в виде отдельного листа, в нем макрос ищет по вводимому номеру значение(цену). Все бы хорошо, но, столбец где прописаны все номера имеет формат ячеек отличительный от остальных(Дополнительный, Тип: АФМ, Язык: греческий), когда значение в ячейке написано как 012345,001234, 000123, а в строке формул показывает как 12345, 1234, 123(отсекает нули).

Подскажите пожалуйста, что изменить в макросе:
Код
   Set f = Intersect(Target, Range("A:A"))
    If f.Cells.Count > 1 Then Set f = f.SpecialCells(xlCellTypeConstants)
    If Not f Is Nothing Then
        For Each cell In f.Cells
            Application.StatusBar = "Поиск цены " & cell
                    If cell Like "######" Then
                    cell.Offset(, 5) = FindAndInsert(db, f, 0, 1)
                End If
            DoEvents
        Next cell
        Application.StatusBar = False
    End If

Чтобы он искал по вводимому номеру 012345, когда в базе 12345.
Почитал про Like, не получается.
p.s. лист с базой трогать не желательно :)
 
Jungl, попробуйте
Код
If cell.Text Like "######" Then
 
Не работает.
Есть момент - в вводимой ячейке тоже получается 123, вместо 000123
Приложил пример, попробуйте.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim FoundNomer As Range
    If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
    If Not Intersect(Target, Columns("A")) Is Nothing Then
    Application.EnableEvents = False
      With Sheets("База")
        Set FoundNomer = .Columns(1).Find(Target, , xlFormulas, xlWhole)
        If Not FoundNomer Is Nothing Then
          Target.Offset(, 1) = .Cells(FoundNomer.Row, 2)
        Else
          MsgBox "На листе База нет номера " & Target
        End If
      End With
    Application.EnableEvents = True
    End If
End Sub
 
Kuzmich, спасибо! Но немного не то. При удалении значения, удаляется и найденное.
Можно ли сделать подобное, не меняя начальный код?
 
Цитата
При удалении значения, удаляется и найденное
Вы хотите, чтобы  при удалении номера оставалась цена, присущая этому номеру?
 
Kuzmich, Да. И если можно не менять первоначальный код, был бы благодарен. Я хочу оставить использование функции findandinsert.
 
Тогда в моем коде измените строку
Код
    If Target.Cells.Count > 1 Or Target = "" Then Exit Sub 'выделено больше одной ячейки
Цитата
использование функции findandinsert.
Не разбирался
Страницы: 1
Наверх