Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как разрешить ввод только нужных символов в ячейку. / 17 сообщений из 17, страница 1 из 1
16.12.2010, 18:46
    #37019205
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Подскажите как можно сделать в Excelе следующее: нужно что бы пользователь мог вводит в ячейки определённого столбца (допустим столбец А) только цифры и десятичный знак (нужно), а буквы и другие символы не мог вводит. Или что бы при вводе появлялось сообщение о запрете ввода строковых символов, или что бы выдавалось сообщение при потере фокуса ячейкой после ввода.
...
Рейтинг: 0 / 0
16.12.2010, 18:53
    #37019219
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Данные - Проверка - Тип данных и т.д.
...
Рейтинг: 0 / 0
17.12.2010, 09:51
    #37019849
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Так то оно так, но вот что делать если пользователь вставляет в эту ячейку данные скопированные из гругой ячейки, где нет такого ограничения? Тут всё наверное нужно организовать ограничение программно на вводе данных...
...
Рейтинг: 0 / 0
17.12.2010, 10:08
    #37019895
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Тогда должна помочь защита листа.
...
Рейтинг: 0 / 0
17.12.2010, 10:28
    #37019943
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
а разве нельзя отлавливать нажатие клавишь при вводе? как это будет выглядеть?
...
Рейтинг: 0 / 0
17.12.2010, 11:00
    #37020051
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Можно отлавливать изменения в ячейке.
Код: plaintext
1.
2.
3.
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
Это код самого листа (не макрос в Module1).
...
Рейтинг: 0 / 0
17.12.2010, 12:20
    #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
17.12.2010, 13:00
    #37020456
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
В режим редактирования вернуть не получается, может и никак.
А вот вернуть предыдущее значение...
Когда-то я такое делал. Пытаюсь вспомнить как...
...
Рейтинг: 0 / 0
17.12.2010, 14:17
    #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
17.12.2010, 16:14
    #37021156
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
а программно можно нажать клавишу F2?
...
Рейтинг: 0 / 0
17.12.2010, 16:35
    #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
17.12.2010, 16:52
    #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
Период между сообщениями больше года.
20.04.2017, 13:12
    #39441553
Fendergod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
А как вам такая задача:
Заявлено, что SendKeys это "Эмуляция нажатий клавиатуры" НУ-НУ...
С клавиатуры я нажму два раза цифру "1" и будет введено число "11",
В SendKeys сколько угодно раз нажимай, а введется только цифра "1" , заменяя все предыдущие
Ну и какая это нафиг "эмуляция нажатий".
...
Рейтинг: 0 / 0
20.04.2017, 13:37
    #39441579
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
а не на словах? конкретный пример показать можете?
...
Рейтинг: 0 / 0
20.04.2017, 14:13
    #39441617
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
Fendergod , SendKeys - это процедура, и там "нажимать" тупо некуда.
...
Рейтинг: 0 / 0
20.04.2017, 14:38
    #39441639
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить ввод только нужных символов в ячейку.
AkinaSendKeys - это процедура, и там "нажимать" тупо некуда.Скорее всего между вызовами есть еще код, который выделяет содержимое ячейки
...
Рейтинг: 0 / 0
20.04.2017, 16:45
    #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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как разрешить ввод только нужных символов в ячейку. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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