Страницы: 1
RSS
Заполнение датами колонки в таблице данными из другой по нескольким значениям
 
Доброго всем дня гуру Excel! Очень нужна ваша помощь в написании макроса. Есть два файла "Картотека ИУ-2.xlsm" и "Журнал КДС.xlsm".
Что нужно:
Файл "Картотека ИУ-2.xlsm". написать макрос для заполнения последней датой колонки "Последняя передача" из файла "Журнал КДС.xlsm" по Иннос если в колонке передача стоит "положена" или "посылка", и строка в файле "Картотека ИУ-2.xlsm"без заливки цветом. Я честно пытался весь день найти решение, но либо не верно составляю поисковый запрос, либо просто не везет.
Изменено: Alex OD - 02.10.2021 23:22:39
 
Цитата
Александр Одинцов написал:
в написании макросов.
а тут приходят добавть, найти ошибку, а у Вас вон как)))
Цитата
Александр Одинцов написал:
нет времени искать что то подобное в форуме.
так обратитесь в раздел "работа"
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
нет времени искать что то подобное в форуме.так обратитесь в раздел "работа"
В силу определенных причин, думаю все очевидно из названия приложенных файлов. А так, я конечно пробовал найти, но возможно не правильно ставлю поисковый запрос.
Изменено: Alex OD - 02.10.2021 22:12:10
 
Alex OD, ну тут такое дело времен нет, но его нужно найти для прочтения правил в частности:
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.
Всё поправил.
 
Добрый вечер! Нашел почти решение при помощи формулы
=ЕСЛИОШИБКА(МАКС(ИНДЕКС(('[Журнал КДС.xlsm]Передачи'!$L$2:$L$100000=CB2)*('[Журнал КДС.xlsm]Передачи'!$F$2:$F$100000="положена")*'[Журнал КДС.xlsm]Передачи'!$A$2:$A$100000;0));"")
Но ничего не получается если вставить в формулу еще и "посылка" и если нет "положена" не оставляет ячейку пустой, да и довольно таки сильно подтормаживает. Может кто подскажет другое решение?
Изменено: Alex OD - 03.10.2021 21:39:53
 
Цитата
Всё поправил.
А сообщить о кроссе
http://www.excelworld.ru/forum/10-48376-1
 
Добрый вечер всем! Вот собственно решение задачи при помощи формулы
Код
=ЕСЛИ(МАКС(ИНДЕКС(('[Журнал КДС.xlsm]Передачи'!$L$2:$L$10000=CB22)*('[Журнал КДС.xlsm]Передачи'!$F$2:$F$10000="положена")*'[Журнал КДС.xlsm]Передачи'!$A$2:$A$10000;0));МАКС(ИНДЕКС(('[Журнал КДС.xlsm]Передачи'!$L$2:$L$10000=CB22)*('[Журнал КДС.xlsm]Передачи'!$F$2:$F$10000="положена")*'[Журнал КДС.xlsm]Передачи'!$A$2:$A$10000;0));"")

Если кто подскажет решение как это реализовать макросом буду очень признателен.
 
Цитата
как это реализовать макросом
В модуль книги Картотека...
Код
Sub LastDate_()
Dim i As Long
Dim iLastRow As Long
Dim FoundInnos As Range
Dim FAdr As String
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  With Workbooks("Журнал КДС.xls").Worksheets("Лист1")
    For i = 2 To iLastRow
     If Cells(i, "D").Interior.ColorIndex = -4142 Then          'нет заливки
      Set FoundInnos = .Columns("H").Find(Cells(i, "D"), , xlValues, xlWhole, xlByRows, xlPrevious)
      If Not FoundInnos Is Nothing Then
        FAdr = FoundInnos.Address
        Do
         If FoundInnos.Offset(, -2) = "положена" Or FoundInnos.Offset(, -2) = "посылка" Then
           Cells(i, "E") = FoundInnos.Offset(, -7)
           Exit Sub
         End If
          Set FoundInnos = .Columns("H").Find(Cells(i, "D"), FoundInnos, xlValues, xlWhole, xlByRows, xlPrevious)
        Loop While FoundInnos.Address <> FAdr
      End If
     End If
    Next
  End With
End Sub

Обе книги должны быть открыты
 
Цитата
Kuzmich написал:
В модуль книги Картотека...

Обе книги должны быть открыты
Большое спасибо за помощь! Вобщем то то что нужно, за исключением того что в книге >14 тыс. строк из которых без заливки 1200 +- из которых заполняется только 1-я ячека в столбце. Если не затруднит подскажите как релизовать заполнение всего столбца.
Немного поправил под себя поскольку заливка реализована макросом при заполнении столбца "Куда убыл" но по сути это роли не играет.
Код
     'If Cells(i, "D").Interior.ColorIndex = -4142 Then          'нет заливки
     If Cells(i, "AT").Value = "" Then
Изменено: Alex OD - 10.10.2021 20:39:30
 
Alex OD, вернитесь и удалите это безумство из своего сообщения. Кнопка цитирования не для того, чтобы Вы бездумно на нее нажимали.
Страницы: 1
Наверх