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

Вход

Регистрация

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

 

= Мир MS Excel/Реализация ВПР на форме с texbox'ами и данными с листа. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Реализация ВПР на форме с texbox'ами и данными с листа. (Макросы/Sub)
Реализация ВПР на форме с texbox'ами и данными с листа.
Паштет Дата: Воскресенье, 03.06.2018, 13:51 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Можно ли на форме сделать texbox, в который вносились бы данные, а в других texbox подставлялись соответствующие значения с листа по принципу ВПР или его аналога?
 
Ответить
СообщениеДобрый день!
Можно ли на форме сделать texbox, в который вносились бы данные, а в других texbox подставлялись соответствующие значения с листа по принципу ВПР или его аналога?

Автор - Паштет
Дата добавления - 03.06.2018 в 13:51
StoTisteg Дата: Воскресенье, 03.06.2018, 13:56 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
Можно. На кнопку ОК вешаем
[vba]
Код
Private Sub CommandButton1_Click()
    Err.Clear
    On Error Resume Next
     Me.TextBox2.Value=Columns(здесь_номер_столбца_в_котором_ищем).Find(Me.TextBox1.Value).Offset(,здесь_сдвиг_по_столбцам)
    If Err.Number<>0 Then Me.TextBox2.Value="Ничего не найдено"
End Sub
    
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Воскресенье, 03.06.2018, 14:08
 
Ответить
СообщениеМожно. На кнопку ОК вешаем
[vba]
Код
Private Sub CommandButton1_Click()
    Err.Clear
    On Error Resume Next
     Me.TextBox2.Value=Columns(здесь_номер_столбца_в_котором_ищем).Find(Me.TextBox1.Value).Offset(,здесь_сдвиг_по_столбцам)
    If Err.Number<>0 Then Me.TextBox2.Value="Ничего не найдено"
End Sub
    
[/vba]

Автор - StoTisteg
Дата добавления - 03.06.2018 в 13:56
Паштет Дата: Воскресенье, 03.06.2018, 14:53 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А без кнопки, допустим через textbox1_change? Идея в том, чтобы пользователь сразу видел результат на форме ничего лишнего не нажимая.
 
Ответить
СообщениеА без кнопки, допустим через textbox1_change? Идея в том, чтобы пользователь сразу видел результат на форме ничего лишнего не нажимая.

Автор - Паштет
Дата добавления - 03.06.2018 в 14:53
StoTisteg Дата: Воскресенье, 03.06.2018, 15:33 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
Да какая разница, на какое событие Вы это подвесите? Код от этого не изменится. Вам виднее, просто Сhange отрабатывает после каждого символа.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеДа какая разница, на какое событие Вы это подвесите? Код от этого не изменится. Вам виднее, просто Сhange отрабатывает после каждого символа.

Автор - StoTisteg
Дата добавления - 03.06.2018 в 15:33
StoTisteg Дата: Воскресенье, 03.06.2018, 15:38 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
Я бы вообще вместо TextBox1 сделал ComboBox с загруженным в него нужным столбцом, но опять же, задача Ваша, Вам виднее.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеЯ бы вообще вместо TextBox1 сделал ComboBox с загруженным в него нужным столбцом, но опять же, задача Ваша, Вам виднее.

Автор - StoTisteg
Дата добавления - 03.06.2018 в 15:38
Паштет Дата: Воскресенье, 03.06.2018, 17:00 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, ваш представленный код работает не верно, подставляет значение из того же столбца на заданный шаг строки. Получилось что-то на подобии ГПР :(
 
Ответить
СообщениеStoTisteg, ваш представленный код работает не верно, подставляет значение из того же столбца на заданный шаг строки. Получилось что-то на подобии ГПР :(

Автор - Паштет
Дата добавления - 03.06.2018 в 17:00
StoTisteg Дата: Воскресенье, 03.06.2018, 17:15 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
Паштет, выложите тот код, который у Вас не работает. Есть у меня подозрения. Запятая после открывающей скобки в Offset - не опечатка и не украшение.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Воскресенье, 03.06.2018, 17:18
 
Ответить
СообщениеПаштет, выложите тот код, который у Вас не работает. Есть у меня подозрения. Запятая после открывающей скобки в Offset - не опечатка и не украшение.

Автор - StoTisteg
Дата добавления - 03.06.2018 в 17:15
Паштет Дата: Воскресенье, 03.06.2018, 17:17 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Columns(1).Find(Me.akt2.Value).Offset(2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Columns(1).Find(Me.akt2.Value).Offset(2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]

Автор - Паштет
Дата добавления - 03.06.2018 в 17:17
StoTisteg Дата: Воскресенье, 03.06.2018, 17:19 | Сообщение № 9
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
Паштет, я так и знал :)
[vba]
Код


Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Columns(1).Find(Me.akt2.Value).Offset(,2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеПаштет, я так и знал :)
[vba]
Код


Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Columns(1).Find(Me.akt2.Value).Offset(,2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 03.06.2018 в 17:19
Паштет Дата: Воскресенье, 03.06.2018, 17:29 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Супер! Все заработало! Прошу прощения, был невнимателен :)

А можно еще ограничить размер столбца, чтобы поиск начинался с 3-й строки до последней заполненной строки или бесконечности?
 
Ответить
СообщениеСупер! Все заработало! Прошу прощения, был невнимателен :)

А можно еще ограничить размер столбца, чтобы поиск начинался с 3-й строки до последней заполненной строки или бесконечности?

Автор - Паштет
Дата добавления - 03.06.2018 в 17:29
StoTisteg Дата: Воскресенье, 03.06.2018, 17:40 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1016
Репутация: 86 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Range(Cells(3,1),Cells(Cells(Rows.Count,1).End(xlUp).Row,1)).Find(Me.akt2.Value).Offset(,2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение[vba]
Код
Private Sub akt2_Change()
Err.Clear
    On Error Resume Next
    Me.name2.Value = Sheets("Æóðíàë ÈÁ").Range(Cells(3,1),Cells(Cells(Rows.Count,1).End(xlUp).Row,1)).Find(Me.akt2.Value).Offset(,2)
    If Err.Number <> 0 Then Me.name2.Value = "Íè÷åãî íå íàéäåíî"
End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 03.06.2018 в 17:40
Паштет Дата: Воскресенье, 03.06.2018, 17:49 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Благодарю!
 
Ответить
СообщениеБлагодарю!

Автор - Паштет
Дата добавления - 03.06.2018 в 17:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Реализация ВПР на форме с texbox'ами и данными с листа. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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