Страницы: 1 2 3 След.
RSS
Как разрешить ввод данных только в одну (любую) ячейку строки?
 
Здравствуйте, пожалуйста, помогите решить следующую задачу в *.xls  
На рабочей странице два соседних столбца (B1:С65535) с заголовками (B1:С1)  
Задача:  
Разрешить пользователю ввод любых данных в ячейки (B2:С65535)  
Обязательное условие:  
Пользователь не при каких обстоятельствах не может одновременно вводить  
данные в две соседние ячейки одной строки!  
Пример:  
Пользователь может вводить данные в ячейки (B2) или (C2).  
Пользователь не может вводить данные одновременно в ячейки (B2) и (C2).  
 
Огромная благодарность создателям www.planetaexcel.ru и Гуру форума:  
pivas, IgorGO, EducatedFool извените, кого пропустил. Долго искал ответ  
на мой вопрос на сайте и форуме... К сожалению без результатно...  
Помогите, пожалуйста.  
С уважением,  
Дмитрий.
 
Пользователь не может вводить данные одновременно в ячейки (B2) и (C2)...  
Дык, и так не может. Только по очереди.
Я сам - дурнее всякого примера! ...
 
У меня встречный вопрос: а как Вы вводите одновременно в две ячейки?
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
   Dim r As Range  
     
   Set r = Range("$b:$c")  
 
   If Not (Intersect(r, Target) Is Nothing) Then  
      If Target.Count > 1 Then  
      Target.ClearContents  
      End If  
   End If  
 
End Sub
 
ввести легко, выделил нужные, ввел значение, нажал Ctrl+Enter. Ну либо скопировал диапазон  
 
выше приведенный код по идее задачу решает.
 
{quote}{login=Dophin}{date=09.04.2010 07:09}{thema=}{post}ввести легко, выделил нужные, ввел значение, нажал Ctrl+Enter. {/post}{/quote}  
:-) Но ведь это ещё исхитриться нужно.
 
{quote}{login=Dophin}{date=09.04.2010 07:09}{thema=}{post}выше приведенный код по идее задачу решает.{/post}{/quote}  
Не решает.
 
{quote}{login=Dophin}{date=09.04.2010 07:09}{thema=}{post}ввести легко, выделил нужные, ввел значение, нажал Ctrl+Enter.{/post}{/quote}  
:-)А если нужно ввести разные значения?
Я сам - дурнее всякого примера! ...
 
{quote}{login=___}{date=09.04.2010 07:05}{thema=}{post}Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)  
   Dim r As Range  
   Set r = Range("$b:$c")  
   If Not (Intersect(r, Target) Is Nothing) Then  
      If Target.Count > 1 Then  
      Target.ClearContents  
      End If  
   End If  
End Sub{/post}{/quote}  
Событие SelectionChange наступает раньше, поэтому тут нужно использовать Worksheet_Change
 
ааа) я на эту часть даже внимания не обратил)
 
Огромная благодарность всем за оперативные ответы!!! Да же не ожидал так быстро ответы получить. Извените, очевидно мой вопрос не совсем правильно был сформулирован мной, вернее одно слово из вопроса: "одновременно".  
Речь идёт о запрете одновременного ввода данных в две соседние ячейки одной строки, не в том плане, что нельзя выделить к примеру ячейки (B2) и (C2) и в один промежуток времени вводить в них данные (разные или одинаковые), а в том плане, что данные нельзя вводить в ячейки (B2) и (C2), а можно вводить только в ячейку (B2) или в ячейку (C2).  
Огромная просьба ко всем, пожалуйста, помогите найти простое, классическое изящное решение к примеру из встроенных функций, из логики или из другого меню, только, пожалуйста, без макросов. Задание вроде на первый взгляд очень простое и приметивное, но как его решить без макросов у меня уже мозг третий день кипит...  
Побывал на разных сайтах: programmersforum.ru, planetaexcel.ru, taurion.ru, it.kgsu.ru в поисках ответа на данный вопрос, и по этой причине задал свой вопрос на вашем форуме. Честное слово, больше нигде не задавал такой вопрос. Надеюсь на помощь Гуру. Сам обожаю и преклоняюсь перед excel!!! Пожалуй, мой самый любимый софт из всего софта!
 
Тогда и формулировать нужно было иначе, например, "Запрет ввода одинаковых значений в соседние ячейки". А что Вы так боитесь макросов? Они же не видны, не кусаются. Посмотрите пример.
 
Меню Данные-Проверка-Тип_данных "Другой"-Формула:  
В С2 =B2="", в В2 =C2=""  
Сообщение об ошибке можно подредактировать.
 
{quote}{login=vikttur}{date=10.04.2010 01:58}{thema=}{post}Меню Данные-Проверка-Тип_данных "Другой"-Формула:  
В С2 =B2="", в В2 =C2=""{/post}{/quote}А копипаст? Здесь валидация не поможет :(
 
Ну, "вводить" и "вставлять" - понятия разные. Автор спрашивал о первом. Да и испуганное "...только, пожалуйста, без макросов". Это как последний вариант, соломинка утопающему, ведь за плот (читай - макрос) автор не хочет цепляться :)
 
Вариант названия темы: "Запрет ввода одинаковых значений в соседние ячейки" тоже не годится для названия темы, так же, как и мой вариант: "Запрет одновременного ввода данных в ячейки каждой строки двух соседних столбцов". Оба варианта не раскрывают сути вопроса в полной мере... Долго ломал голову, как точнее сформулировать название темы. Пользователь не может не вводить, не копировать значения в соседние ячейки! При чём не важно одинаковые эти значения или нет. В двух своих постах мною чётко было обозначено данное обстоятельство:  
 
Цитирую самого себя:  
Пример:  
Пользователь может вводить данные в ячейки (B2) или (C2).  
Пользователь не может вводить данные одновременно в ячейки (B2) и (C2).  
 
Цитирую самого себя:  
Речь идёт о запрете одновременного ввода данных в две соседние ячейки одной строки, не в том плане, что нельзя выделить к примеру ячейки (B2) и (C2) и в один промежуток времени вводить в них данные (разные или одинаковые), а в том плане, что данные нельзя вводить в ячейки (B2) и (C2), а можно вводить только в ячейку (B2) или в ячейку (C2).
 
Юрий М, прикреплёный Вами файл post_116037.xls открываю в Excel 2003 (EN) клик по Enable Macros или Disable Macros даные в ячейки (B2) или (C2) вводятся свободно, так же, как и в ячейки (B2) и (C2), что в нашей задаче не допустимо.  
Необходимо обеспечить ввод данных любым способом в ячейки (B2) или (C2)!  
И не допустить при этом ввода данных любым способом в ячейки (B2) и (C2)!
 
В свете вновь открывшихся... попробуйте так (см. пример). По поводу разрешить/запретить макросы - с таким подходом и любой другой вариант решения можно обойти. Например, если это будут Данные - Проверка, то зайти в этот пункт меню, и удалить условие.
 
{quote}{login=vikttur}{date=10.04.2010 01:58}{thema=}{post}Меню Данные-Проверка-Тип_данных "Другой"-Формула:  
В С2 =B2="", в В2 =C2=""  
Сообщение об ошибке можно подредактировать.{/post}{/quote}  
совершенно верно, только форомула в обоих случаях такая:  
=ИЛИ($B2="";$C2="")
 
dmdon, а может имеется в виду что если в В2 есть данные, то в С2 вводить нельзя, и наоборот если есть в С2 то в В2 - нельзя. Если да, то это наверное другая задача которую можно решить без vba условным форматированием.
 
Прошу прощения, это такой же вариант.    
+Невнимательно читал тему(((
 
{quote}{login=DV}{date=10.04.2010 01:37}{thema=}{post}Прошу прощения, это такой же вариант.    
+Невнимательно читал тему((({/post}{/quote}  
Присоединяюсь к "Невнимательно читал тему"
 
{quote}{login=PavelKs}{date=10.04.2010 01:31}{thema=}{post}dmdon, а может имеется в виду что если в В2 есть данные, то в С2 вводить нельзя, и наоборот если есть в С2 то в В2 - нельзя. Если да, то это наверное другая задача которую можно решить без vba условным форматированием.{/post}{/quote}  
Задачу Вы поняли правильно (это я надеюсь, так как сам так понял из последних объяснений), но условным форматированием Вы не сможете запретить ввод данных. Замаскировать - да.  
Вопрос к автору - мой последний файл задачу решает?
 
{quote}{login=The_Prist}{date=10.04.2010 01:45}{thema=}{post}Все остальные методы защиты можно обойти без проблем.{/post}{/quote}То есть фаталити? Ничего никак не запретишь?..
 
Я знаю радикальный способ - удалить Excel :-)
 
{quote}{login=The_Prist}{date=10.04.2010 02:39}{thema=Re: Re: }{post}{quote}{login=Serge 007}{date=10.04.2010 02:01}{thema=Re: }{post}То есть фаталити? Ничего никак не запретишь?..{/post}{/quote}А как? Макросы не устраивают, а другими методами нельзя запретить полностью...{/post}{/quote}Так и макросы отключить можно...
 
{quote}{login=Юрий М}{date=10.04.2010 01:48}{thema=Re: }{post}{quote}{login=PavelKs}{date=10.04.2010 01:31}{thema=}{post}dmdon, а может имеется в виду что если в В2 есть данные, то в С2 вводить нельзя, и наоборот если есть в С2 то в В2 - нельзя. Если да, то это наверное другая задача которую можно решить без vba условным форматированием.{/post}{/quote}  
Задачу Вы поняли правильно (это я надеюсь, так как сам так понял из последних объяснений), но условным форматированием Вы не сможете запретить ввод данных. Замаскировать - да.  
Вопрос к автору - мой последний файл задачу решает?{/post}{/quote}  
Братья, всем спасибо за поддержку!!!  
Мою задачу на все 100% точно изложил PavelKs (очень сильно извеняюсь за то, что я сам не смог кратко и точно сформулировать свой вопрос).  
Условным форматированием действительно не получится запретить ввод данных для моей задачи.  
Юрий М, спасибо Вам, Ваш последний файл к сожалению не помог в решении задачи.  
 
Пока благодаря поддержки форумчан вижу одно направление решения моего задания:  
1. Data--->Validation--->Закладка "Settings" Validation criteria Allow: "Custom"  
2. В поле Formula: нам необходимо ввести логическую формулу примерного вида:  
ЕСЛИ в строках диаппазона ячеек (В2:В65536) есть данные,  
тогда Excel запрещает ввод данных в ячейки (C2:C65536),  
при условии ЕСЛИ вводимые данные совпадают в строках диаппазона (В2:С65536).  
Могу (если нужно) приложить скриншот и файл для наглядности...
 
Try this way
MyExcelWorld One World One Dream!
Microsoft MVP Excel from 2012
Aydin Aliyev
 
{quote}{login=dmdon}{date=10.04.2010 03:09}{thema=Re: Re: }{post}{quote}при условии ЕСЛИ вводимые данные совпадают в строках диаппазона (В2:С65536).{/post}{/quote} При чём абсолютно не важен тип ввода данных (копированием или с клавиатуры) и содержимое вводимых данных.
 
{quote}{login=Useful}{date=10.04.2010 03:22}{thema=}{post}Try this way{/post}{/quote}Excuse, but it not that decision which is required...  
Try to copy cell В1 and to insert into any cell with validation. At you it will turn out. And the absolute prohibition is necessary. Without any possibility to bring the data in the blocked cells.
Страницы: 1 2 3 След.
Читают тему
Наверх