Добрый день, форумчане! Помогите решить одну задачу. Есть база данных товарных накладных где есть номер ТН, дата, адреса и тд. в столбце А прописываются номера ТН. Задача заключается в следующем: нужно сделать такую функцию, чтоб, например, в ячейку G1 пишем номер товарной накладной. Если значение в ячейке G1 совпадает со значением в ячейке столбца А, то эта ячейка выделяется зеленым цветом и когда нажимаем Enter то переходим в соседнюю ячейку столбца B. В эту ячейку мы пишем одно из трех значений(например буква V или VV или +) и когда нажимаем Enter то эта ячейка тоже заливалась зеленым цветом. И нажимаем Enter и возвращаемся в ячейку где вводим номер накладной для поиска. Если не находим искомое значение, то выдает ошибку. как то так. Заранее спасибо))
Добрый день, форумчане! Помогите решить одну задачу. Есть база данных товарных накладных где есть номер ТН, дата, адреса и тд. в столбце А прописываются номера ТН. Задача заключается в следующем: нужно сделать такую функцию, чтоб, например, в ячейку G1 пишем номер товарной накладной. Если значение в ячейке G1 совпадает со значением в ячейке столбца А, то эта ячейка выделяется зеленым цветом и когда нажимаем Enter то переходим в соседнюю ячейку столбца B. В эту ячейку мы пишем одно из трех значений(например буква V или VV или +) и когда нажимаем Enter то эта ячейка тоже заливалась зеленым цветом. И нажимаем Enter и возвращаемся в ячейку где вводим номер накладной для поиска. Если не находим искомое значение, то выдает ошибку. как то так. Заранее спасибо))nagjiec
наверное это проще будет сделать с формой. Хотя можно и без неё. Но создавать файл лениво. Да и переделывать потом... В эбщем как-то так: в событие листа Worksheet_Change вписываешь процедуру из 2 блоков. одна часть для контроля ячейки С1. в ней поиск значения в колонке А, заливка цветом если нашлась и переход во 2 колонку найденной строки. Либо сообщение что не найдено Во втором блоке проверка, что изменение было во 2 колонке и если да, то заливка и переход в С1
наверное это проще будет сделать с формой. Хотя можно и без неё. Но создавать файл лениво. Да и переделывать потом... В эбщем как-то так: в событие листа Worksheet_Change вписываешь процедуру из 2 блоков. одна часть для контроля ячейки С1. в ней поиск значения в колонке А, заливка цветом если нашлась и переход во 2 колонку найденной строки. Либо сообщение что не найдено Во втором блоке проверка, что изменение было во 2 колонке и если да, то заливка и переход в С1alex77755
private sub worksheet_change(byval target as range) on error goto err with target select case true case .address() = "$G$1" [a:a].interior.color = xlnone with [a:a].find(.value, , xlvalues, 1) .interior.color = vbgreen application.goto .offset(0, 1), 1 end with case .address like "$B$*" select case lcase(.value) case "v", "vv", "+" .interior.color = vbgreen end select end select end with exit sub err: msgbox "ошибка", 16 end sub
[/vba]
[vba]
Код
private sub worksheet_change(byval target as range) on error goto err with target select case true case .address() = "$G$1" [a:a].interior.color = xlnone with [a:a].find(.value, , xlvalues, 1) .interior.color = vbgreen application.goto .offset(0, 1), 1 end with case .address like "$B$*" select case lcase(.value) case "v", "vv", "+" .interior.color = vbgreen end select end select end with exit sub err: msgbox "ошибка", 16 end sub