Всем привет! Начинаю осваивать exel по части макросов, но есть задание с которым моих навыков пока не хватает. Помогите решить проблему: Есть файл, на один лист (Лист2) ежедневно будет вставляться отчет по созданным заказам. Для того чтобы была возможность прогнозировать сумму остатков создан другой лист (Лист 1). Нужен код, который будет копировать значения (желательно с примечанием в котором указывается номер заказа, макрос для вставки примечаний я уже написал) на листе 2 - ячейку O2, O3, O4, O5, O6 и вставлять это значение на Лист1 напротив нужного поставщика в дату, которая высчитывается исходя из даты заказа (ячейка I2-I6 на лист2) и прибавления к ней срока поставки (ячейка С8-С12). Поставщики должны определяться по коду (ячейки B8-12 Лист 1 и ячейки D2-D6 Лист2) т.к. не каждый день заказывается каждый поставщик и порядок расположения строк может быть другим. Лист2 после копирования значений будет каждый день очищаться, но формат расположения данных и хначений остается всегда такой же.
Постарался описать задачу подробно что требуется, если возникнут вопросы, задавайте. Задачу можно решить функцией =ЕСЛИ, но придется добавить на лист1 столбец с номером заказа и каждый день вставлять новую строчку вниз с поставщиком и номером. Не хочется чтобы таблица росла и по горизонтали и по вертикали. Вроде букв много, но задача впринципе простая, вроде и код сложным не должен получиться, но помочь и подсказать некому. Заранее спасибо за помощь!
Всем привет! Начинаю осваивать exel по части макросов, но есть задание с которым моих навыков пока не хватает. Помогите решить проблему: Есть файл, на один лист (Лист2) ежедневно будет вставляться отчет по созданным заказам. Для того чтобы была возможность прогнозировать сумму остатков создан другой лист (Лист 1). Нужен код, который будет копировать значения (желательно с примечанием в котором указывается номер заказа, макрос для вставки примечаний я уже написал) на листе 2 - ячейку O2, O3, O4, O5, O6 и вставлять это значение на Лист1 напротив нужного поставщика в дату, которая высчитывается исходя из даты заказа (ячейка I2-I6 на лист2) и прибавления к ней срока поставки (ячейка С8-С12). Поставщики должны определяться по коду (ячейки B8-12 Лист 1 и ячейки D2-D6 Лист2) т.к. не каждый день заказывается каждый поставщик и порядок расположения строк может быть другим. Лист2 после копирования значений будет каждый день очищаться, но формат расположения данных и хначений остается всегда такой же.
Постарался описать задачу подробно что требуется, если возникнут вопросы, задавайте. Задачу можно решить функцией =ЕСЛИ, но придется добавить на лист1 столбец с номером заказа и каждый день вставлять новую строчку вниз с поставщиком и номером. Не хочется чтобы таблица росла и по горизонтали и по вертикали. Вроде букв много, но задача впринципе простая, вроде и код сложным не должен получиться, но помочь и подсказать некому. Заранее спасибо за помощь!Andro04
Set sh1 = Worksheets("Лист1") Set sh2 = Worksheets("Лист2") lr = sh2.Cells(sh2.Rows.Count, "O").End(xlUp).Row arr2() = sh2.Range("A1:I" & lr).Value
For i = 2 To UBound(arr2) r = WorksheetFunction.Match(arr2(i, 4), sh1.Columns("B"), 0) var = CDate(arr2(i, 9)) + sh1.Cells(r, "C").Value var = CLng(var) c = WorksheetFunction.Match(var, sh1.Rows(1), 0) sh2.Cells(i, "O").Copy sh1.Cells(r, c).PasteSpecial xlPasteValues sh1.Cells(r, c).PasteSpecial xlPasteComments Next i
Set sh1 = Worksheets("Лист1") Set sh2 = Worksheets("Лист2") lr = sh2.Cells(sh2.Rows.Count, "O").End(xlUp).Row arr2() = sh2.Range("A1:I" & lr).Value
For i = 2 To UBound(arr2) r = WorksheetFunction.Match(arr2(i, 4), sh1.Columns("B"), 0) var = CDate(arr2(i, 9)) + sh1.Cells(r, "C").Value var = CLng(var) c = WorksheetFunction.Match(var, sh1.Rows(1), 0) sh2.Cells(i, "O").Copy sh1.Cells(r, c).PasteSpecial xlPasteValues sh1.Cells(r, c).PasteSpecial xlPasteComments Next i