Всем добрый день. У меня появилась такая проблема. Мне нужно чтобы в ячейку можно было вводить только цифры и одну запятую. Пробовал через формулы, но так и ничего не получилось, а если пробовать через макрос, то можно макрос отключить, и тогда пользователь может ввести, что ему захочется. Прошу, помогите.
Будет очень хорошо, если всё будет через формулы реализовано с использованием метода проверки данных в ячейке.
То есть шаблон содержимого ячеек должен быть только таким (*,*) это значит ввод хоть сколько цифр и только одной запятой, равно и прочее недопустимо.
Мне это нужно для того чтобы человек смог только ввести данные в числовом формате с использованием только одной запятой если он хочет разделить до копеек и всё. Данный метод распространяется ну на одну ячейку, а на несколько.
Прошу помогите.
Сделал как и говорил 2 пункте DS28.
Установить для листа.
VBA
Private Sub Worksheet_Calculate()
ActiveSheet.Range(Target.Address).NumberFormat = "@"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4:G54")) Is Nothing Then
Application.EnableEvents = False
If Not ActiveSheet.Range(Target.Address).NumberFormat = "@" Then
MsgBox "Необходимо использовать формат ячейки [Текстовый]", 48, "Ошибка"
Target = ""
Else
If Not IsNumeric(Target) And ActiveSheet.Range(Target.Address).NumberFormat = "@" Then
MsgBox "Разрешается ввод используя шаблон [1234,1234]", 48, "Ошибка"
Target = ""
End If
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Range(Target.Address).NumberFormat = "@"
End Sub
Дело в том, что про это я уже знал, и как сказал выше использование формул запрещено. То есть в этом способе всё запрещено, кроме использования формул. (