Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Как сделать проверку ячеек и запрет написания в них не тех символов

Автор Александр Бойков, 28.04.2015, 18:26

« назад - далее »

Александр Бойков

Задача такая

есть блок по 3 ячейки например A3,A4,A5  нужно сделать такую проверку что бы:
1. написать что либо можно было только в 1 из них, т.е если в одной из них уже написан символ "1" то в другие уже нельзя НИЧЕГО
2. что бы писать можно было в ячейку только цифру "1" а при вводе любого и любой другой длины символа не писалось

в итоге должно выйти, три ячейки и только в одной из трех цифра "1" а в другие ничего написать нельзя, и кроме цифры 1 в ту ячейку тоже ничего нельзя

а если нельзя сделать все это сразу то хотя бы  что бы в ячейка сразу 2 проверки проходили и на длину символов и на сам символ, а то  там я так понял формула нужна... так как без неё только 1 проверку делает....

RAN

Цитата: Александр Бойков от 28.04.2015, 18:26
а то  там я так понял формула нужна...
Не правильно поняли. Если в ячейку ввести 1, то там формулы не будет.
Того, кто нужен, зовут "Макрос".

vikttur

Данные-Проверка_данных
Для А3: Тип_данных-целое_число_1
Для А4, А5: Тип_данных-Другой, формула:
=A3<>1

Александр Бойков

это не совсем то что нужно, нужно что бы хотя бы при любом расладе ТОЛЬКО в 1 из 3 ячеек поставить 1 можно было а тут по  (Для А4, А5: Тип_данных-Другой, формула:
=A3<>1)

выходит что МОЖНО в А4 и А5 поставить  по 1...  не ставит только если в А3 стоит 1.... а нужно что бы поставил в ЛЮБУЮ из этих 3х ячеек 1 или любой символ и все в 2х других что бы нельзя было

kuklp

Воспользуюсь примером Виктора.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [a3:a5]) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = 0
    If Target.Value = 1 Or Target.Value = "" Then
    Else
        Application.Undo
    End If
    If Application.CountA([a3:a5]) > 1 Then Application.Undo
    Application.EnableEvents = -1
End Sub
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

cheshiki1

Данные-Проверка_данных
Тип_данных-Другой, формула:
=СЧЁТЗ($A$3:$A$5)<=1

_Boroda_

А может, все-таки, вот так
=СУММ(A$3:A$5)=1

Файлик перевложил. Так интереснее
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

kuklp

Саш, может СУММ(A$3:A$5)<=1?
Пустые ячейки разрешено. И еще. Это помешает вводить любые другие символы? Буквы, например.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

_Boroda_

Нет, именно =
И более того, я как раз только что исправил, еще не видя твоего текста
вот так нужно
=A$3+A$4+A$5=1
Тогда и нецифры тоже под запретом
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

kuklp

Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Александр Бойков

больше спасибо формула для проверки

=A$3+A$4+A$5=1

просто идеально к тому что мне нужно, только остался один вопрос нельзя ли как нибудь сделать что бы при копирования  этих 3 ячеек и вставке их в другие 3 ячейки например выделить ячейки А7,A8 и A9 и что бы формула проверки была уже не =A$3+A$4+A$5=1 , а =A$7+A$8+A$9=1

или это только вручную можно исправить? а то просто у меня этих ячеек больше 100))  или хоть как то упросить процесс можно?

zs

Здравствуйте, Александр! С Днем Победы!
Посмотрите вариант с формулой, но при этом необходим дополнительный столбец