Страницы: 1
RSS
Реализовать таблицу по подсчету и контролю продовольствия
 
Уважаемые форумчане, надеюсь на вашу помощь с реализацией задуманного мною варианта таблицы по подсчету и учету продовольствия, все цифры указаны просто как пример. Имеется слева таблица в которой указаны названия продуктов, их кол-во меняется по нажатию на счетчик, справа находятся перечисленные слева продукты с датами и пунктами "пришло" ушло",а еще чуть ниже таблица из которой можно будет понять итоги за указанный период. Возможно ли, прибавляя счетчиком данные слева - записывать их в таблицу справа в пункт "пришло", а записывать в пункт "ушло" если данные слева были вычтены, и что бы это было связанно с текущим временем - т.е, если сегодня первое января, то записывать на первое. снизу же возможность указав промежуток - выдать итог. Понимаю что вообще ничего не объяснил, но все же. сам я застрял уже на том моменте, когда значения измененные счетчиком не изменяли те значения, для которых был написан код, только лишь если вводить вручную.

Буду рад любым ответам, даже если просто скажите почему счетчик не меняет значения. для этого добавил еще один файл с названием ОТЧЕТ, который нашел в другой теме, там как раз сделано все по датам и если изменить значения введя данные в ячейку, то на втором листе данные занесутся, а если счетчиком - нет. и если напишете как одним счетчиком, отнимая - заносить в ушло, прибавляя - в пришло.(второй не смог добавить, некорректный файл)
https://www.cyberforum.ru/ms-excel/thread1680477.html
 
nipolka,для раздумий - на плюс минус двойным кликом, а еще у вас общая тема такию тут в разделе работа решают, а в этой ветке конкретный вопрос
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
Dim Product As Range, dataa As Range 'объявление переменных
If Not Intersect(Target, Range("i19,k19,m19,o19,q19,s19,u19,w19")) Is Nothing Then ' отслеживание двоеного нажатия на указанные ячейки
    Target.Offset(0, -1) = Target.Offset(0, -1) + 1 'если одна из указанных выше ячеек тогда прибавляем 1 к значению
    Set Product = Columns(27).Find(Target.Offset(-1, -1)) 'ищем продукт которому добавляли 
    Set dataa = Rows(15).Find(Date) 'ищем сегодняшнюю дату
    Cells(Product.Row, dataa.Column + 1) = Cells(Product.Row, dataa.Column + 1) + 1 'добавляем единичку под сегодняшней датой в столбец приход
    Cancel = True
End If
If Not Intersect(Target, Range("i20,k20,m20,o20,q20,s20,u20,w20")) Is Nothing Then ' отслеживание двоеного нажатия на указанные ячейки
    Target.Offset(-1, -1) = Target.Offset(-1, -1) - 1'если одна из указанных выше ячеек тогда прибавляем 1 к значению
    Set Product = Columns(27).Find(Target.Offset(-2, -1)) 'ищем продукт у которого отнимали
    Set dataa = Rows(15).Find(Date) 'ищем сегодняшнюю дату
    Cells(Product.Row, dataa.Column) = Cells(Product.Row, dataa.Column) - 1 'отнимаем единичку под сегодняшней датой в столбец расход
    Cancel = True
End If
End Sub
Изменено: Mershik - 17.01.2021 21:35:20
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо за отзывчивость, извините,что с темой промазал, я вчера только зарегистрировался
поигрался с тем, что вы скинули - это очень круто! спасибо еще раз, буду копать дальше, надеюсь, что мне и дальше помогут на этом сайте, когда я выдам более конкретные вопросы
Изменено: nipolka - 17.01.2021 19:32:51
 
nipolka, создавайте тему по конкретному вопросу и все  
Не бойтесь совершенства. Вам его не достичь.
 
кросс
По вопросам из тем форума, личку не читаю.
 
Mershik, не буду спрашивать что-то сделать, лишь, если несложно, просто небольшие комментарии к коду
 
nipolka, см. #2
Изменено: Mershik - 17.01.2021 21:36:24
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, возникла потребность перенести вторую таблицу на другой лист, вроде разобрался в коде, но как например если я меняю значение счетчиком на одном листе, а на "лист 2" находится  таблица с датами, как это прописать,чтоб они были связаны как если бы на одном листе, не подскажите?
попробовал так, но безуспешно, на втором ничего
Код
Set Product = Sheets("Лист2").Columns(27).Find(Target.Offset(-1, -1))
    Set dataa = Sheets("Лист2").Rows(15).Find(Date)
Изменено: nipolka - 01.02.2021 22:32:58
Страницы: 1
Наверх