Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2012, 18:25   #1
KSTeeen
 
Регистрация: 16.11.2012
Сообщений: 5
По умолчанию условие в цикле с блокировкой колонок

Добрый день! обыскал весь форум, не нашел ничего подходящего. Помогите пожалуйста в макросе, а именно - есть график, в нем люди ставят свои дежурства, каждые день - одна колонка. Как можно блокировать колонку для дальнейшего ввода при условии когда в ней насобирается три заполненые ячейки (скажем цифрами 1,или 2)?
Как я понимаю, чтоб оно работало на каждую колонку отдельно, наверное нужен цикл, в котором условие будет проверять количество ячеек, суммировать их, и в случае если оно = 3 то выполнятся функция N которая будет блокировать диапозон ячеек в колонке. Правильно? Если так, то подскажите формулу блокирующую ячейку для ввода.
KSTeeen вне форума Ответить с цитированием
Старый 16.11.2012, 19:55   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Формула не может заблокировать ячейку для ввода.
Нужны макросы.

Пока не будет примера в виде прикреплённого файла Excel (в архиве) - помощи вы не дождётесь...
Прикрепите свой файл, и на его примере покажите, что как долно работать и блокироваться
EducatedFool вне форума Ответить с цитированием
Старый 18.11.2012, 12:44   #3
KSTeeen
 
Регистрация: 16.11.2012
Сообщений: 5
По умолчанию

Пока я был на выходном, все переигралось, условие изменилось, и даже мой напарник почти допилил этот макрос, но все равно он не работает как надо, а именно почти идеально выполняется для колонки B, а в остальных почему то условие не перепроверяется. И вместо сообщения "превышено количество" он пишет "сохрани документ". Пробовал увеличивать диапазон, выдает ошибку в строке
If nR = 1 And nC = 1 And Target > 3 Then
как его можно сделать для всего диапазона таблицы? она во вложении.

Прим.: Люди ячейки закрашивают не заливкой, а копипастом, ctrl+с - ctrl+v.
Вложения
Тип файла: zip ГРАФИК ДЕЖУРСТВ.zip (21.2 Кб, 10 просмотров)
KSTeeen вне форума Ответить с цитированием
Старый 18.11.2012, 13:29   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Люди ячейки закрашивают
Я конечно не знаю всей задачи, но точно бы не заморачивался с цветом.
К чему все это, для красоты?
Насколько я знаю, обычно ставим 8-ку или 6-ку, в зависимости от рабочих часов смены и всех делов.
И считать легко и автоматизировать...да что хочешь.
Кстати, идея сходу)
В зависимости от введеного значения, УФ закрашиваем ячейку нужным цветом.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 18.11.2012 в 13:31.
VictorM вне форума Ответить с цитированием
Старый 18.11.2012, 13:38   #5
KSTeeen
 
Регистрация: 16.11.2012
Сообщений: 5
По умолчанию

так я именно так и думал про УФ и цифры 1 и 2 - типа первая и вторая смены, но уже за меня придумали считать именно колцвет. Я полностью согласен - идиотизм.В принципе, можно переделать. Но вопрос не в этом - как запретить людям вводить больше трех значений в одну колонку?
KSTeeen вне форума Ответить с цитированием
Старый 18.11.2012, 13:49   #6
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
как запретить людям вводить больше трех значений в одну колонку?
в яч.AF4 пишем =СЧЁТ(H4:AE4)
макросом проверяем количество заполненных ячеек
Ну а дальше - дело техники
кстати, только дочитался - так колонку или строку?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 18.11.2012 в 13:58.
VictorM вне форума Ответить с цитированием
Старый 18.11.2012, 14:36   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

переделано все... на формулы
Виктор,
Цитата:
макросом проверяем количество заполненных ячеек
проверяем без макросов.

из макросов остался один
Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Me.Saved = False Then Me.Save
End Sub
который насильно сохраняет файл без вопросов (лично я не уверен, что это правильно)

куда перечислить деньги - есть в подписи. будете расчитываться патронами - передадите при личной встрече.
Вложения
Тип файла: rar ГРАФИК ДЕЖУРСТВ.rar (10.6 Кб, 13 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 18.11.2012 в 14:53.
IgorGO вне форума Ответить с цитированием
Старый 18.11.2012, 14:41   #8
KSTeeen
 
Регистрация: 16.11.2012
Сообщений: 5
По умолчанию

именно колонки. всего 30 колонок - 30 дней. в день должен быть 1 утренний, 2 вечерних дежурных, когда файл открывается для записи менеджерам - они там ставят по 5 дней себе в удобные им дни, а в неудобные, вообще никто ничего не ставит. Вот и задача, чтоб в одну колонку нельзя было внести больше 3-х значений. То понятно, чтоб он считал и так далее, в моем примере все именно так, только вместо защиты колонки,(т.к. я не знаю как ее макросом сделать) выпадает сообщение превышено количество.и то, только в первой колонке
KSTeeen вне форума Ответить с цитированием
Старый 18.11.2012, 15:12   #9
KSTeeen
 
Регистрация: 16.11.2012
Сообщений: 5
По умолчанию

IgorGO
Спасибище огромное!
Все именно так, как надо, один минус - если копипастить, то предупреждений нет.
Касательно денег - указали б сумму. От себя постараюсь закинуть с зарплаты хоть 20 грн. а вообще - буду требовать от руководства.
KSTeeen вне форума Ответить с цитированием
Старый 18.11.2012, 22:15   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

опа, я только сейчас увидел адрес: Киев.
там еще в первой строке вместо первого числа можно написать новую дату, например, 1.12.2012 - шапка будет на декабрь.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление Колонок HospodySave Microsoft Office Excel 4 30.06.2010 18:24
Создание колонок Golovastik Microsoft Office Word 1 01.06.2010 09:18
Проблемка с блокировкой TaskMgr artemavd Общие вопросы Delphi 1 04.03.2010 12:28
условие в цикле Николай Сергеевич Общие вопросы C/C++ 8 24.12.2009 14:25
Синхронизация колонок eImage Microsoft Office Excel 4 13.03.2009 20:42