Все здравствуйте! Нужна подмога! Хочу повесить на кнопку макрос который будет переносить данные в нужные позиции. Например: Во вкладке "Закупка" ввожу наименования, количество и цену товара далее, нажимаю кнопочку "Внести на склад" и данные автоматически заносятся во вкладку "склад", причем цена переносится как есть, а количество увеличивается. Например, во вкладке "склад" изначально было 2 карбюратора, во вкладке закупка я поставил еще 1 карбюратор, нажал кнопочку и во вкладке "склад" стало 3 карбюратора. Буду очень признателен!
Все здравствуйте! Нужна подмога! Хочу повесить на кнопку макрос который будет переносить данные в нужные позиции. Например: Во вкладке "Закупка" ввожу наименования, количество и цену товара далее, нажимаю кнопочку "Внести на склад" и данные автоматически заносятся во вкладку "склад", причем цена переносится как есть, а количество увеличивается. Например, во вкладке "склад" изначально было 2 карбюратора, во вкладке закупка я поставил еще 1 карбюратор, нажал кнопочку и во вкладке "склад" стало 3 карбюратора. Буду очень признателен!Дми3й
Private Sub CommandButton1_Click() lr = Cells(Rows.Count, 1).End(xlUp).Row Set sh2 = Sheets("Склад") Set sh1 = Sheets("Закупка товара") For i = 3 To lr prod = WorksheetFunction.CountIf(sh2.Columns("a:a"), Cells(i, 1)) With sh2 If prod > 0 Then r = .Columns("A:A").Find(What:=Cells(i, 1)).Row .Range("b" & r) = .Range("b" & r) + sh1.Range("b" & i) .Range("d" & r) = sh1.Range("c" & i) Else r = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Range("a" & r) = sh1.Range("a" & i) .Range("b" & r) = sh1.Range("b" & i) .Range("d" & r) = sh1.Range("c" & i) End If End With Next i End Sub
[/vba]
Дми3й, вот еще пример (но без словарей) [vba]
Код
Private Sub CommandButton1_Click() lr = Cells(Rows.Count, 1).End(xlUp).Row Set sh2 = Sheets("Склад") Set sh1 = Sheets("Закупка товара") For i = 3 To lr prod = WorksheetFunction.CountIf(sh2.Columns("a:a"), Cells(i, 1)) With sh2 If prod > 0 Then r = .Columns("A:A").Find(What:=Cells(i, 1)).Row .Range("b" & r) = .Range("b" & r) + sh1.Range("b" & i) .Range("d" & r) = sh1.Range("c" & i) Else r = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Range("a" & r) = sh1.Range("a" & i) .Range("b" & r) = sh1.Range("b" & i) .Range("d" & r) = sh1.Range("c" & i) End If End With Next i End Sub