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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2016, 09:40   #1
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию Если не заполнена причина списания, не разрешать заполнять дальше

Добрый день, друзья!

Есть акт списания полуфабрикатов. Проблема в том, что часто при его заполнении не указывают причину списания, оставляя только кол-во в столбцах C,E,G.

Как можно сделать так, чтобы, если они в какой-либо строке поставили кол-во в каком-либо из столбцов C,E,G, и не указав причину списания в столбце I продолжили писать где-либо ещё, то выходило бы окно "Укажите причину списания!" до тех пор, пока они её не укажут.

Спасибо!
Вложения
Тип файла: xls Пример Акта списания.xls (20.0 Кб, 16 просмотров)
Ogeris вне форума Ответить с цитированием
Старый 07.09.2016, 10:51   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

как вариант, можем "прыгать" в столбец І после изменений столбцов СЕG
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim r As Integer
    r = 5
    If Target.Column = 9 Then Exit Sub
    If Target.Column = 3 or Target.Column = 5 or Target.Column = 7 then
    Do While Cells(r, 1) <> ""
        If (Cells(r, "C") <> "" Or Cells(r, "E") <> "" Or Cells(r, "G") <> "") _
        And Cells(r, "I") = "" Then
        Cells(r, "I").Select
        End If
        r = r + 1
    Loop
    end if
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 07.09.2016, 11:39   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Как можно сделать так, чтобы, если они в какой-либо строке поставили кол-во в каком-либо из столбцов C,E,G, и не указав причину списания в столбце I продолжили писать где-либо ещё,
(только как идея) Или сделать наоборот
НЕ ДАВАТЬ заполнять CEG (например защита листа/ячеек) до тех пор пока не будет заполнен соответствующий I (причина ).
А при попытке все же заполнить(тыкнуть) сообщить о причинах такого поведения (потребовать заполнить причину).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.09.2016, 12:06   #4
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
как вариант, можем "прыгать" в столбец І после изменений столбцов СЕG
У меня ничего не происходит :-(
Ogeris вне форума Ответить с цитированием
Старый 07.09.2016, 13:53   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Ogeris Посмотреть сообщение
У меня ничего не происходит :-(
Значит код не в том модуле
Вложения
Тип файла: xls Пример Акта списания.xls (40.0 Кб, 14 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 07.09.2016, 13:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Ogeris Посмотреть сообщение
У меня ничего не происходит :-(
либо макросы выключены.
либо макрос не туда вставили.


p.s. ups! Опоздал!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.09.2016, 13:58   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а так?
Вложения
Тип файла: xls Пример Акта списания.xls (38.0 Кб, 16 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.09.2016, 14:02   #8
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Значит код не в том модуле
Очень круто получилось! Спасибище!
Ogeris вне форума Ответить с цитированием
Старый 07.09.2016, 14:37   #9
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

Открываю файл-пример, в нем все работает, нажимаю Alt+F11, открываю код, который находится в лист1, копирую его, перехожу в свой рабочий файл с кучей других листов, захожу в нужный мне лист, копирую туда код, не работает :-( В чём может быть причина? Макросы включены
Ogeris вне форума Ответить с цитированием
Старый 07.09.2016, 14:40   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условие, если ячейка заполнена, то выполнить johny_03 Microsoft Office Excel 3 21.12.2014 02:21
Если строка в коде не м.б. выполнена, - пропустить и работать дальше? Ogeris Microsoft Office Excel 2 23.04.2012 07:40
в чем причина? дальше не идет gabiboi Компьютерное железо 3 20.12.2011 00:12
idftp если нет коннекта, то работаем дальше _KUL Работа с сетью в Delphi 5 15.04.2011 02:58
Если программа не отвечает, как определить в чем причина. LSergM Win Api 2 24.11.2009 17:46