Страницы: 1
RSS
Найти артикул в другой книге и заполнить ячейки
 
Приветсятвую Вас Уважаемые знатоки Макросов.

Я понимаю данный вопрос многого стоит. Но хотя бы для понимания и личного обучения...
Подскажите пожалуйста от чего отталкиваться и куда смотреть в данной ситуации. Если, файл А(База) и Файл Б(шаблон).
Возможно ли с Файла Б по списку заказа запустив макрос, заполнить напротив найденных Артикулов на Файле А. И при этом вернуть полученные значения(учтенные) значения вернуть обратно в колонку отсутствует в фалй Б?
пример во вложении.
Мне бы подсказать в какие темы глядеть и как быть. В платный раздел все таки не хочется. так как это мне самому нужно. Нужно и учится.
Изменено: aybek04 - 20.03.2020 12:55:30
 
aybek04,
Цитата
aybek04 написал: Файл Б(шаблон).
это одно и то жЕ?
Цитата
aybek04 написал: заказ.xlsx
и можно подробнее о "при этом вернуть полученные значения(учтенные) значения вернуть обратно в колонку отсутствует в фалй Б?"
проще говоря опишите как бы  вы это сделали вручную!?
Изменено: Mershik - 20.03.2020 11:25:26
Не бойтесь совершенства. Вам его не достичь.
 
В ручную открываю Файл Б смотрю заказ. открываю Файл А сортируя ищу Артикул вожу на против значение с Файла Б. потом открываю Файл Б и ввожу и туда уже полученные значения)))))
И так перебираю каждый артикул  
Изменено: aybek04 - 20.03.2020 11:25:37
 
Цитата
aybek04 написал:
открываю Файл А сортируя ищу Артикул вожу на против значение с Файла Б.
какое значение?
Цитата
aybek04 написал:
потом открываю Файл Б и ввожу и туда уже полученные значения
тот же вопрос, какое значение?
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
aybek04 написал: ожу на против значение с Файла Б
какие?
что за значения в "ответ" ?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Nordheim написал:какое значение?
с Файла Б беру сколько заказано каких игрушек и ввожу в файл А
Файл А ведет учет. Учтенный результат возвращаю в Файл Б.

Цитата
какие?что за значения в "ответ" ?
во вложенных файлах колонка с таким названием ответ
 
aybek04, еще раз что за ответ в файл в одном а в другом его нет....
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
aybek04 , еще раз что за ответ в файл в одном а в другом его нет...
я наверное не правильно выразился.
если быть определенно точнее. то мне нужно с формированного шаблона, макрос заполнял базу автоматически. И получал результат есть в наличии заказанное количество или нет. обратно заполняя автоматически колонку ответ.
Кстати сам же допускал ошибку во вложениях. подправил
Изменено: aybek04 - 20.03.2020 12:56:17
 
aybek04, если правильно понял( после стольких вариантов вытащить из вас информацию) ...необходимо изменить ввод цвета в заказ(шаблон) файл А (как вы там его называете).

переименовал файлы а и б открываете два и нажимаете на кнопку...
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
переименовал файлы а и б открываете два и нажимаете на кнопку...
)))) все супер. а можно коментарии к макросам какой где что делает, для чайника?. Глаза загорелись)))
И на этом спасибоооооо)))

Код
Dim i As Double
Dim n As Double
Set Baza = Workbooks("а.xlsx").Worksheets("Лист1")
Set Zakaz = Workbooks("б.xlsm").Worksheets("Лист1")
ilastrow1 = Zakaz.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ilastrow1
    ilastrow2 = Baza.Cells(Rows.Count, 1).End(xlUp).Row
    For n = 3 To ilastrow2
      If Baza.Cells(n, 3) = Zakaz.Cells(i, 3) _
      And _
     Baza.Cells(n, 4) = Zakaz.Cells(i, 4) Then
      Baza.Cells(n, 6) = Zakaz.Cells(i, 5)
      If Baza.Cells(n, 7) >= 0 Then
      Zakaz.Cells(i, 6) = Baza.Cells(n, 6)
      Else
      Baza.Cells(n, 6) = Baza.Cells(n, 5)
      Zakaz.Cells(i, 6) = Baza.Cells(n, 5)
      End If
      End If
    Next n
Next i

 
aybek04,
ну не уверен что понятно объяснил
Код
Sub Макрос1()
Dim i As Double
Dim n As Double
Set Baza = Workbooks("а.xlsx").Worksheets("Лист1") ' выбираем книгу 1 для удобства и понимания записанного макроса
Set Zakaz = Workbooks("б.xlsm").Worksheets("Лист1") ' выбираем книгу 2 для удобства и понимания записанного макроса
ilastrow1 = Zakaz.Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную строку в книге 2
For i = 2 To ilastrow1 ' цикл прохода по значениям в заказе от 2 строки до последней (ее определили ранее)
    ilastrow2 = Baza.Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную строку в книге 1
    For n = 3 To ilastrow2  ' цикл прохода по значениям в базе от 2 строки до последней для сравнения артикула и цвтеа с заказом
      If Baza.Cells(n, 3) = Zakaz.Cells(i, 3) _
      And _
     Baza.Cells(n, 4) = Zakaz.Cells(i, 4) Then ' если и цвет и артикул заказа совпали
      Baza.Cells(n, 6) = Zakaz.Cells(i, 5) ' копируем нужные из заказа колечество нужного товара в базу
      If Baza.Cells(n, 7) >= 0 Then 'затем проверяем в базе остаток в столбце G - что бы остаток был положительным
      Zakaz.Cells(i, 6) = Baza.Cells(n, 6) ' и если остаток положительный копируем ставит в лист заказ в столбец ответ кол-во того что можем взять из базы
      Else
      Baza.Cells(n, 6) = Baza.Cells(n, 5) ' если остаток меньше нуля тогда в книгу база ставим в заказ кол-во равное запасу
      Zakaz.Cells(i, 6) = Baza.Cells(n, 5) 'затем в книгу заказ кол-во равное запасу в ответ
      End If
      End If
    Next n
Next i
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
     Baza.Cells(n, 6) = Zakaz.Cells(i, 5) ' копируем нужные из заказа колечество нужного товара в базу
а как сделать так , что бы он копировал значение только в одну строку а не на все найденные подобного артикула с подобным цветом?
бывает иногда этот же артикул с другой полки. а иногда другой завоз. но в той же полке.
лушче бы он вообще искал минимальное значение и вычитывал с него
 
Страницы: 1
Наверх