Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 21

Переход из TextBox в UserForm к определенной ячейке

08.04.2021, 16:53. Показов 5305. Ответов 21

Студворк — интернет-сервис помощи студентам
Добрый день.
Обращаюсь за помощью, поиск юзал, подобного кейса так и не смог найти.
1. У меня есть таблица с данными
2. Есть UserForm с TextBox, в котором выводятся запрашиваемые данные
3. TextBox формируется с помощью text = text & "Данные" & "Ячейка" и так по циклу
4. Необходимо сделать так, чтобы "ячейка" была в виде гиперссылки и при клике на неё происходил переход в указанную ячейку на таблице с данными и закрывался UserForm.
Все варианты Hyperlinks, которые я нашел, применяется к определенным ячейкам, приколхозить эту штуку в TextBox у меня не получилось. Может кто-то может подсказать хотя бы приблизительный синтаксис подобной реализации?

Если нужен файл примера, завтра попробую сделать шаблон, для демонстрации. Боевой файл по политике компании не могу выкладывать
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.04.2021, 16:53
Ответы с готовыми решениями:

TextBox привязать к определенной ячейке столбца
в датагридвью есть таблица, нужно текстбокс привязать копределенной ячейке столбца

Событие textbox.Enter в UserForm
В общем проблема состоит вот в чём. У меня есть форма, на ней куча текстбоксов, кнопок и меток (но это не важно). Каждый текстбокс и кнопка...

Вставка данных из userform (textbox) в ячейку
добрый день, первый раз программирую на VBA, перекопал кучу документации и камнем преткновения для меня стало задание: "создать...

21
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 21
12.04.2021, 11:19  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от I can Посмотреть сообщение
Это глюк VBA из-за символа №

Добавлено через 23 секунды
Попробуйте подобрать другой шрифт.

Добавлено через 30 секунд
Или менять № на другой символ.
Спасибо за совет, порыскал ещё в интернете.
Помогло - https://www.planetaexcel.ru/fo... age1033710
Увеличил размер шрифта с 8 до 9, теперь всё отображается корректно, в очередной раз очень помогли, спасибо. Двигаюсь дальше
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 21
14.04.2021, 09:58  [ТС]
Финализирую, чтобы закрыть тему, если вдруг кто-то столкнется с подобной проблемой как у меня.
Для начала КостяФедореев, I can, спасибо большое за помощь и уделенное время, вы очень мне помогли.

Вводные: Есть textbox, который методом пополнения данных, проходя по циклу производит вывод результатов поиска по запросу (скрины с примерами можно посмотреть выше). В результатах поиска в отдельной строке выводится номер ячейки, в которой найдено значение, удовлетворяющее условиям поиска.
Задача: Реализовать возможность клика по номеру ячейки и перехода в указанную строку
Решение: В рамках TextBox реализовать возможность вывода значений в виде гиперссылки невозможно, к тому же множественный вывод разных гиперссылок (если значений удовлетворяющих условия поиска несколько). С помощью указанных в блоке "Благодарности" пользователей был реализован переход вывода результатов поиска с TextBox на ListBox и уже при даблклике на определенный ListBox привязана функция перехода на ячейку.

1. Перенос ListBox в следующую строку, если значение полностью не влазит по ширине окна:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub ListboxAddItem(L As MSForms.ListBox, s As String, Optional mLen Integer = 38
   Dim st, s1 As String, i As Integer
   st = Split(s)
   For i = 0 To UBound(st)
       s1 = s1 & st(i) & " "
       If Len(s1) > mLen Then
           L.AddItem Trim$(s1)
           s1 = ""
       End If
   Next i
   If s <> "" Then L.AddItem Trim$(s1)
End Sub
2. Добавление значений ListBox в окно по аналогии с выводом результатов поиска как ранее в TextBox
Тут приведу лишь малую часть кода, т.к. полный имеет много лишнего, не относящегося к теме, макрос считывает значение в TextBox (параметр для поиска) и ищет в определенных столбцах совпадения проходя каждый объект с помощью With End With
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'...
Set spisok = ThisWorkbook.Worksheet("Таблица")
Set result = .Find(what:=TextBox1.Value, LookIn:=xlFormulas, lookat:=xlWhole, TatchCase:=False, SearchDirection:=xlPrevious)
'...
text_new1 = "Сотрудник: " & spisok.Cells(result.Row, sotrudnik).Value & "; ДАТА: " & spisokar.Cells(result.Row, data_val).Value
text_new2 = "Наименование: " & spisok.Cells(result.Rov, text_task).Value
text_new3 = "Задача: " & spisok.Cells(result.Row, task_num).Value
text_new4 = "Комментарий: " & spisok.Cells(result.Row, commentary)
text_new5 = 'ещё значение
text_new6 = "Ячейка: " & result.Address
text_new7 = ""
'Добавляем значения ListBox. Те значения, по которым есть риск, что в 1 строку не влезут прогоняем через указанный выше макрос
Me.ListBox1.AddItem text_new1
Call ListboxAddItem(ListBox1, text_new2)
Me.ListBox1.AddItem text_new3
Call ListBoxAddItem(Listbox1, text_new4)
Me.ListBox1.AddItem text_new5
Me.ListBox1.AddItem text_new6
Me.ListBox1.AddItem text_new7
'...
3. Реализация перехода в ячейку с результатом поиска по даблклику в ListBox

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim TextListBox As Variant
    TextListBox = UserForm1.ListBox1.Value
    If TextListBox Like "Ячейка:*" Then
        st = Len(TextListBox)
        str1 = InStr(1, TextListBox, "Ячейка:", vbTextCompare) + 8
        adr = Mid(TextListBox, str1)
        Thisworkbook.Worksheets("Таблица").Activate
        ThisWorkbook.Worksheets("Таблица").Range(adr).EntireRow.Select
        Unload UserForm1
    End If
End Sub
4. Решение проблемы со съезжанием значений ListBox из-за присутствия символа №
Есть несколько вариантов:
  1. Избегать использования символа №, или заменять его на N. В моём случае не подходящий вариант
  2. Подобрать другой шрифт, при котором текст не будет съезжать, даже при наличии символа "№", встречал вариант с шрифтом Courier New, но у меня вообще изменение шрифта приводило к некорректной работе макроса, хотя сейчас вот это пишу и появляются идеи, по какой причине это происходило)
  3. Увеличить размер стандартного шрифта, который идет при создании интерфейса в VBA с 8 до 9 пт. Решение нашел здесь

P.S. я не профессионал в теме VBA, поэтому какие-то вещи проходя через мой фильтр, при повествовании, могли быть искажены, заранее приношу извинения у тех, кому это будет бросаться в глаза )
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2021, 09:58

Как сделать автозавершение в UserForm.TextBox'е
Вобщем народ подскажите мне ламаку как сделать так, чтоб когда я чё-нибдь пишу в текстбоксе он мне предлагал завершить начатое слово или...

Userform ошибка при загрузке данных в textbox
1. Клик по кнопке &quot;Сохранить&quot; вызывает форму. 2. Форма состоит multipage и текстбоксов в которые загружаются данные из ячеек. Данные в...

Как в VBA UserForm добавить NumericUpDown (TextBox+SpinButton)?
Пример такого контрола во вложении. Понятно, что можно просто добавить TextBox и SpinButton, выставить размеры и привязать их друг к...

Как менять значение TextBox в Userform с использованием CommandButton
Здравствуйте. Подскажите пожалуйста, как реализовать такую простую идею. Я создал обычную Userform, предполагая, что в TextBox можно...

UserForm, TextBox, не отображается текст вводимый в одно из полей формы
Вопрос, наверное, детский, но я уже сломал голову. Помогите, пожалуйста Делаю форму для диалога с пользователем, где есть три TextBox для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru