powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как разрешить ввод только нужных символов в ячейку.
17 сообщений из 17, страница 1 из 1
Как разрешить ввод только нужных символов в ячейку.
    #37019205
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как можно сделать в Excelе следующее: нужно что бы пользователь мог вводит в ячейки определённого столбца (допустим столбец А) только цифры и десятичный знак (нужно), а буквы и другие символы не мог вводит. Или что бы при вводе появлялось сообщение о запрете ввода строковых символов, или что бы выдавалось сообщение при потере фокуса ячейкой после ввода.
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37019219
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные - Проверка - Тип данных и т.д.
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37019849
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так то оно так, но вот что делать если пользователь вставляет в эту ячейку данные скопированные из гругой ячейки, где нет такого ограничения? Тут всё наверное нужно организовать ограничение программно на вводе данных...
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37019895
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда должна помочь защита листа.
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37019943
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а разве нельзя отлавливать нажатие клавишь при вводе? как это будет выглядеть?
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37020051
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно отлавливать изменения в ячейке.
Код: plaintext
1.
2.
3.
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
Это код самого листа (не макрос в Module1).
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37020355
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я уже пробывал и меня это в принципе устраивает... Это событие возникает когда ячейка теряет фокус, и происходит проверка на числовое значение, т.е.

Код: plaintext
1.
2.
3.
4.
5.
6.
If Target.Column =  8  Then
If Not IsNumeric(Target.Value) Then
    Target.Select
    MsgBox "Только число можно ввести", vbCritical, "Проверка ввода"
End If
end if

Но вот как сделать что бы после закрытия этого сообщения эта ячейка открылас на редактирования (перешла в режим редактирования), т.е. аналог того когда двойным кликом или F2 по ячейке жмём...
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37020456
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В режим редактирования вернуть не получается, может и никак.
А вот вернуть предыдущее значение...
Когда-то я такое делал. Пытаюсь вспомнить как...
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37020716
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
Dim PrevRangeValue As Variant
Код: plaintext
1.
2.
3.
Private Sub Worksheet_Activate()
    PrevRangeValue = ActiveCell.Value
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Column =  8  Then
        If Not IsNumeric(Target.Value) Then
            Target.Value = PrevRangeValue
             MsgBox "Только число можно ввести", vbCritical, "Проверка ввода"
        End If
     End If
End Sub
Код: plaintext
1.
2.
3.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    PrevRangeValue = Target.Value
End Sub
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37021156
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а программно можно нажать клавишу F2?
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37021237
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё ущё проще:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Column =  8  Then
        If Not IsNumeric(Target.Value) Then
            Target.Cells.Select
             MsgBox "Только число можно ввести", vbCritical, "Проверка ввода"
             SendKeys "{F2}"
        End If
     End If
End Sub
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #37021302
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо
Код: plaintext
1.
Target.Cells.Select
можно просто
Код: plaintext
Target.Select
И еще один момент:

После сообщения команда SendKeys "{F2}" возвращает меня в ячейку, но не меняет введённое мной неправильное значение.
А если я нажму Esc, то это значение останется там.
В итоге получим что если я хочу ввести символ, я его всё-таки введу.

Можно просто выделить редактируемую ячейку вернув старое значение:

Код: plaintext
1.
Dim PrevRangeValue As Variant, ErrRangeChange As Boolean
Код: plaintext
1.
2.
3.
4.
Private Sub Worksheet_Activate()
    ErrRangeChange = False
    PrevRangeValue = ActiveCell.Value
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column =  8  Then
        If Not IsNumeric(Target.Value) Then
            Target.Value = PrevRangeValue
            ErrRangeChange = True
            Target.Select
            MsgBox "Только число можно ввести", vbCritical, "Проверка ввода"
        End If
    End If
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not ErrRangeChange Then
        PrevRangeValue = Target.Value
        ErrRangeChange = False
    End If
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как разрешить ввод только нужных символов в ячейку.
    #39441553
Fendergod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как вам такая задача:
Заявлено, что SendKeys это "Эмуляция нажатий клавиатуры" НУ-НУ...
С клавиатуры я нажму два раза цифру "1" и будет введено число "11",
В SendKeys сколько угодно раз нажимай, а введется только цифра "1" , заменяя все предыдущие
Ну и какая это нафиг "эмуляция нажатий".
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #39441579
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не на словах? конкретный пример показать можете?
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #39441617
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fendergod , SendKeys - это процедура, и там "нажимать" тупо некуда.
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #39441639
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaSendKeys - это процедура, и там "нажимать" тупо некуда.Скорее всего между вызовами есть еще код, который выделяет содержимое ячейки
...
Рейтинг: 0 / 0
Как разрешить ввод только нужных символов в ячейку.
    #39441757
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FendergodВ SendKeys сколько угодно раз нажимай, а введется только цифра "1" , заменяя все предыдущиеКод приведите, который так себя ведет(а лучше файл).
У меня такой код:
Код: vbnet
1.
2.
3.
4.
5.
Sub ttt()
Application.SendKeys "1"
Application.SendKeys "1"
Application.SendKeys "1"
End Sub


вводит "111" в активную ячейку(при условии, что код был вызван с листа).
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как разрешить ввод только нужных символов в ячейку.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]