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

Вход

Регистрация

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

 

= Мир MS Excel/Снять временно запрет на редактирование списка ComboBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Снять временно запрет на редактирование списка ComboBox (Макросы/Sub)
Снять временно запрет на редактирование списка ComboBox
Сергей13 Дата: Воскресенье, 03.03.2019, 23:51 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте.
Ребята для защиты от редактирования списка ComboBox в свойствах для Style установлено 0.
В некоторых случаях возникает необходимость ввода иного текста (в данном случае символ прочерк "—") через CommandButton, то есть код выглядит так.

[vba]
Код
Private Sub CommandButton3_Click()
    FormLogbook.ComboBox6.Style = 2 'Снять защиту на редактирование
    FormLogbook.ComboBox6 = "—"     'Ввод знака
    FormLogbook.ComboBox6.Style = 0 'Установить защиту на редактирование
End Sub
[/vba]

Данное действие как бы изначально срабатывает, но чередуя выбор из списка ComboBox а затем ввод символа выдает ошибку.


Сообщение отредактировал Сергей13 - Воскресенье, 03.03.2019, 23:55
 
Ответить
СообщениеЗдравствуйте.
Ребята для защиты от редактирования списка ComboBox в свойствах для Style установлено 0.
В некоторых случаях возникает необходимость ввода иного текста (в данном случае символ прочерк "—") через CommandButton, то есть код выглядит так.

[vba]
Код
Private Sub CommandButton3_Click()
    FormLogbook.ComboBox6.Style = 2 'Снять защиту на редактирование
    FormLogbook.ComboBox6 = "—"     'Ввод знака
    FormLogbook.ComboBox6.Style = 0 'Установить защиту на редактирование
End Sub
[/vba]

Данное действие как бы изначально срабатывает, но чередуя выбор из списка ComboBox а затем ввод символа выдает ошибку.

Автор - Сергей13
Дата добавления - 03.03.2019 в 23:51
vikttur Дата: Понедельник, 04.03.2019, 00:19 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Установите .Style = 0 и попробуйте не менять )
А потом поменяйте в коде местами 0 и 2
Что показывает эксперимент?


Сообщение отредактировал vikttur - Понедельник, 04.03.2019, 00:38
 
Ответить
СообщениеУстановите .Style = 0 и попробуйте не менять )
А потом поменяйте в коде местами 0 и 2
Что показывает эксперимент?

Автор - vikttur
Дата добавления - 04.03.2019 в 00:19
Сергей13 Дата: Понедельник, 04.03.2019, 00:47 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
vikttur, Не знаю правильно ли понял, но при таком варианте ошибку не выдает, но и не вставляет иной текст.
К сообщению приложен файл: Style.xlsm (16.7 Kb)
 
Ответить
Сообщениеvikttur, Не знаю правильно ли понял, но при таком варианте ошибку не выдает, но и не вставляет иной текст.

Автор - Сергей13
Дата добавления - 04.03.2019 в 00:47
vikttur Дата: Понедельник, 04.03.2019, 12:26 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Иной текст введите в список и не мучайтесь.
 
Ответить
СообщениеИной текст введите в список и не мучайтесь.

Автор - vikttur
Дата добавления - 04.03.2019 в 12:26
Сергей13 Дата: Понедельник, 04.03.2019, 18:51 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
vikttur, Ввод другого текста не меняет сути, просто идет очистка поля, но текст не вставляется.
 
Ответить
Сообщениеvikttur, Ввод другого текста не меняет сути, просто идет очистка поля, но текст не вставляется.

Автор - Сергей13
Дата добавления - 04.03.2019 в 18:51
Nic70y Дата: Понедельник, 04.03.2019, 21:42 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
не мучайтесь


К сообщению приложен файл: 2031660.gif (23.8 Kb) · 5617197.gif (20.9 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Понедельник, 04.03.2019, 21:43
 
Ответить
Сообщение
не мучайтесь



Автор - Nic70y
Дата добавления - 04.03.2019 в 21:42
RAN Дата: Понедельник, 04.03.2019, 23:27 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub ComboBox6_Change()
    For i = 0 To ComboBox6.ListCount - 1
        If ComboBox6.List(i) = Val(ComboBox6.Value) Then Exit Sub
    Next
    If ComboBox6.Value <> "" Then ComboBox6.Value = Chr(151)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub ComboBox6_Change()
    For i = 0 To ComboBox6.ListCount - 1
        If ComboBox6.List(i) = Val(ComboBox6.Value) Then Exit Sub
    Next
    If ComboBox6.Value <> "" Then ComboBox6.Value = Chr(151)
End Sub
[/vba]

Автор - RAN
Дата добавления - 04.03.2019 в 23:27
Сергей13 Дата: Вторник, 05.03.2019, 18:35 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, Интересное решение.
Так как список будет состоять из текстовых данных, то изменил список на текстовый.
Текстовый игнорирует, выставляя знак «—», можно ли сделать чтобы при пустом поле выводил знак «—» и при изменении текста, который не входит в список.
 
Ответить
СообщениеRAN, Интересное решение.
Так как список будет состоять из текстовых данных, то изменил список на текстовый.
Текстовый игнорирует, выставляя знак «—», можно ли сделать чтобы при пустом поле выводил знак «—» и при изменении текста, который не входит в список.

Автор - Сергей13
Дата добавления - 05.03.2019 в 18:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Снять временно запрет на редактирование списка ComboBox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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