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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос автоматической активации TextBox для внесения текста - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос автоматической активации TextBox для внесения текста
DemYch0988 Дата: Четверг, 29.02.2024, 11:11 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 20% ±

Всем привет, пытаюсь решить задачу, есть элемент управление поле со списком, в котором есть перечень значений стандартных и прочие, при выборе "Прочие" "TextBox2" и "TextBox3" должны стать активными для внесения дополнительных значений. Если Выбраны стандартные значения, то TextBox2 и TextBox3 не активный. С помощью нейронки есть код [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$44" Then
If Target.Value = 3 Then
TextBox2.Enabled = True
TextBox2.Activate
Else
TextBox2.Enabled = False
End If
End If
End Sub
[/vba] но он автоматически не срабатывает, приходится выполнять доп. действия я сделал так "Sub Выделение_и_переход()
Range("G44").Select
Range("F44").Select
End Sub" но данное решение меня не устраивает. Прошу подсказать как элегантно решить данную задачу? Пример прилагаю.
К сообщению приложен файл: primer.xlsm (61.1 Kb)


Сообщение отредактировал Serge_007 - Четверг, 29.02.2024, 12:02
 
Ответить
СообщениеВсем привет, пытаюсь решить задачу, есть элемент управление поле со списком, в котором есть перечень значений стандартных и прочие, при выборе "Прочие" "TextBox2" и "TextBox3" должны стать активными для внесения дополнительных значений. Если Выбраны стандартные значения, то TextBox2 и TextBox3 не активный. С помощью нейронки есть код [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$44" Then
If Target.Value = 3 Then
TextBox2.Enabled = True
TextBox2.Activate
Else
TextBox2.Enabled = False
End If
End If
End Sub
[/vba] но он автоматически не срабатывает, приходится выполнять доп. действия я сделал так "Sub Выделение_и_переход()
Range("G44").Select
Range("F44").Select
End Sub" но данное решение меня не устраивает. Прошу подсказать как элегантно решить данную задачу? Пример прилагаю.

Автор - DemYch0988
Дата добавления - 29.02.2024 в 11:11
MikeVol Дата: Суббота, 02.03.2024, 14:36 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 378
Репутация: 80 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
DemYch0988, Доброго времени суток. Если я вас правильно понял то вот вам вариант:
[vba]
Код
Option Explicit

Sub Кому_Change()
    Dim s           As Object: Set s = ActiveSheet.Shapes(Application.Caller)
    Debug.Print "Значение контролла: " & s.ControlFormat.Value

    If s.ControlFormat.Value = 3 Then
        Лист3.TextBox2.Enabled = True
        Лист3.TextBox3.Enabled = True
    Else
        Лист3.TextBox2.Enabled = False
        Лист3.TextBox3.Enabled = False
    End If

End Sub
[/vba]
Код внести в стандартный модуль. Удачи.


Ученик.
Одесса - Украина
 
Ответить
СообщениеDemYch0988, Доброго времени суток. Если я вас правильно понял то вот вам вариант:
[vba]
Код
Option Explicit

Sub Кому_Change()
    Dim s           As Object: Set s = ActiveSheet.Shapes(Application.Caller)
    Debug.Print "Значение контролла: " & s.ControlFormat.Value

    If s.ControlFormat.Value = 3 Then
        Лист3.TextBox2.Enabled = True
        Лист3.TextBox3.Enabled = True
    Else
        Лист3.TextBox2.Enabled = False
        Лист3.TextBox3.Enabled = False
    End If

End Sub
[/vba]
Код внести в стандартный модуль. Удачи.

Автор - MikeVol
Дата добавления - 02.03.2024 в 14:36
  • Страница 1 из 1
  • 1
Поиск:

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