Может быть подскажете что нужно сделать что бы после того как значение найдено кроме самого найденного значения копировалась еще значение той же строки предидущего столбца и вставлялось так же в основной документ в предидущий столбец текущей строки ?
Может быть подскажете что нужно сделать что бы после того как значение найдено кроме самого найденного значения копировалась еще значение той же строки предидущего столбца и вставлялось так же в основной документ в предидущий столбец текущей строки ?dp
Пожалуйста. В этой теме не подскажу. Читайте Правила форума. Тем более, что у вас еще во фрилансе тема, на вопрос из которой вы так и не удосужились ответить
Пожалуйста. В этой теме не подскажу. Читайте Правила форума. Тем более, что у вас еще во фрилансе тема, на вопрос из которой вы так и не удосужились ответить_Boroda_
Первый Фор-Некст нужно закомментировать, а второй наоборот - раскомментировать
Здравствуйте! Попробовал сделать это для поиска номера авто по цифрам а не по первым буквам. Вроде закомментировал первый фор-некст, а а второй - раскомментировал. Получилось так: [vba]
Код
X = Range("B6", Cells(Rows.Count, 2).End(xlUp)).Value 'For i = 1 To UBound(X, 1) ' поиск по первым буквам ' If txt = Mid(X(i, 1), 1, lt) Then s = s & "~" & X(i, 1) 'Next i For i = 1 To UBound(X, 1) 'поиск по любому вхождению If InStr(X(i, 1), txt) Then s = s & "~" & X(i, 1) Next i ListBox1.List = Split(Mid(s, 2), "~") End Sub
[/vba] Но при вводе цифр в форму поиска, пусто. Что не так?
Первый Фор-Некст нужно закомментировать, а второй наоборот - раскомментировать
Здравствуйте! Попробовал сделать это для поиска номера авто по цифрам а не по первым буквам. Вроде закомментировал первый фор-некст, а а второй - раскомментировал. Получилось так: [vba]
Код
X = Range("B6", Cells(Rows.Count, 2).End(xlUp)).Value 'For i = 1 To UBound(X, 1) ' поиск по первым буквам ' If txt = Mid(X(i, 1), 1, lt) Then s = s & "~" & X(i, 1) 'Next i For i = 1 To UBound(X, 1) 'поиск по любому вхождению If InStr(X(i, 1), txt) Then s = s & "~" & X(i, 1) Next i ListBox1.List = Split(Mid(s, 2), "~") End Sub
[/vba] Но при вводе цифр в форму поиска, пусто. Что не так?velikoleg
Добрый день уважаемые ГУРУ Excel. Есть вопрос по созданию combobox в форме, от которого будет зависеть диапазон значений, введенных в textbox. Есть производитель, есть оборудование. По первым буквам внесенным в textbox отображаются все варианты из столбца А1 листа basa. Хотелось бы сделать так.Как пример. При выборе производителя Neumo из combobox при наборе первых букв в textbox в listbox отображались только те варианты, которые относятся к Neumo. База данных постоянно пополняется как производителями, так и оборудованием
Добрый день уважаемые ГУРУ Excel. Есть вопрос по созданию combobox в форме, от которого будет зависеть диапазон значений, введенных в textbox. Есть производитель, есть оборудование. По первым буквам внесенным в textbox отображаются все варианты из столбца А1 листа basa. Хотелось бы сделать так.Как пример. При выборе производителя Neumo из combobox при наборе первых букв в textbox в listbox отображались только те варианты, которые относятся к Neumo. База данных постоянно пополняется как производителями, так и оборудованиемvlascha
Сообщение отредактировал vlascha - Понедельник, 04.12.2017, 14:52
Здравствуйте! подскажите пожалуйста как изменить код чтобы значения в листбокс1 не повторялись, если в начальной базе есть ячейки с одинаковыми именами. Спасибо. Например если много ивановых, то они все отображаются.
Здравствуйте! подскажите пожалуйста как изменить код чтобы значения в листбокс1 не повторялись, если в начальной базе есть ячейки с одинаковыми именами. Спасибо. Например если много ивановых, то они все отображаются.Tomatr
- Прочитайте Правила форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь) Вариантов несколько, нужно смотреть файл
- Прочитайте Правила форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь) Вариантов несколько, нужно смотреть файл_Boroda_
Под спойлер спрятать не получилось. Правки касались только выбора места куда и откуда что вставлять. [vba]
Код
Option Explicit Option Compare Text Dim bu As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub If Target.Row = 1 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub If Target.Column = 3 And Target.Row > 54 And Target.Row < 67 Then ' bu = True With Me.TextBox1 .Top = Target.Top: .Text = Target.Value ': .Activate End With With Me.ListBox1 .Top = Target.Top + 5 If (.Top + .Height + ActiveWindow.PointsToScreenPixelsY(0) * Application.InchesToPoints(1) * 15 / 1440) > _ (ActiveWindow.Application.Height + ActiveWindow.Application.Top) Then _ .Top = .Top - .Height + Target.Height '* ActiveWindow.Zoom / 100 .Clear End With bu = False Me.TextBox1.Visible = True: Me.ListBox1.Visible = True Else Me.TextBox1.Visible = False: Me.ListBox1.Visible = False End If End Sub
Private Sub TextBox1_Change() If Len(TextBox1.Text) = 0 Or bu Then Exit Sub 'при отсутствии символов для поиска - выход Dim x, i As Long, txt As String, lt As Long, s As String txt = TextBox1.Text: lt = Len(TextBox1.Text) x = Columns(153).SpecialCells(2).Offset(1).Value For i = 1 To UBound(x, 1) ' поиск по первым буквам If txt = Mid(x(i, 1), 1, lt) Then s = s & x(i, 1) & "~" Next i ListBox1.List = Split(s, "~") End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Or KeyCode = 9 Then With Me.TextBox1 ActiveCell.Value = .Value .Visible = False: ListBox1.Visible = False End With ActiveCell(2, 1).Select End If End Sub
Private Sub ListBox1_Click() If ListBox1.ListIndex = -1 Then Exit Sub Application.EnableEvents = False bu = True With Me.ListBox1 ActiveCell.Value = .Value Me.TextBox1.Text = .Value Me.TextBox1.Visible = False: .Visible = False End With
Application.EnableEvents = True bu = False End Sub
'Sub tt() 'Application.EnableEvents = True 'End Sub
[/vba]
Под спойлер спрятать не получилось. Правки касались только выбора места куда и откуда что вставлять. [vba]
Код
Option Explicit Option Compare Text Dim bu As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub If Target.Row = 1 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub If Target.Column = 3 And Target.Row > 54 And Target.Row < 67 Then ' bu = True With Me.TextBox1 .Top = Target.Top: .Text = Target.Value ': .Activate End With With Me.ListBox1 .Top = Target.Top + 5 If (.Top + .Height + ActiveWindow.PointsToScreenPixelsY(0) * Application.InchesToPoints(1) * 15 / 1440) > _ (ActiveWindow.Application.Height + ActiveWindow.Application.Top) Then _ .Top = .Top - .Height + Target.Height '* ActiveWindow.Zoom / 100 .Clear End With bu = False Me.TextBox1.Visible = True: Me.ListBox1.Visible = True Else Me.TextBox1.Visible = False: Me.ListBox1.Visible = False End If End Sub
Private Sub TextBox1_Change() If Len(TextBox1.Text) = 0 Or bu Then Exit Sub 'при отсутствии символов для поиска - выход Dim x, i As Long, txt As String, lt As Long, s As String txt = TextBox1.Text: lt = Len(TextBox1.Text) x = Columns(153).SpecialCells(2).Offset(1).Value For i = 1 To UBound(x, 1) ' поиск по первым буквам If txt = Mid(x(i, 1), 1, lt) Then s = s & x(i, 1) & "~" Next i ListBox1.List = Split(s, "~") End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Or KeyCode = 9 Then With Me.TextBox1 ActiveCell.Value = .Value .Visible = False: ListBox1.Visible = False End With ActiveCell(2, 1).Select End If End Sub
Private Sub ListBox1_Click() If ListBox1.ListIndex = -1 Then Exit Sub Application.EnableEvents = False bu = True With Me.ListBox1 ActiveCell.Value = .Value Me.TextBox1.Text = .Value Me.TextBox1.Visible = False: .Visible = False End With
Application.EnableEvents = True bu = False End Sub
'Sub tt() 'Application.EnableEvents = True 'End Sub
Зачем под спойлер? Об этом разве в Правилах написано? Еще раз - - Прочитайте Правила форума - Оформите в своем первом сообщении код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
Зачем под спойлер? Об этом разве в Правилах написано? Еще раз - - Прочитайте Правила форума - Оформите в своем первом сообщении код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)_Boroda_