Страницы: 1
RSS
Как выборочно получать данные в таблицу с разных листов (другого листа)
 
День добрый. Краснею, если повторяю чью-то тему, но ума не приложу даже в каких недрах искать подобные и с какой стороны подойти к решению.  
Задача следующая:    
Есть "проводка с таблицей заполняющаяся вручную  
"Дата" "Номер" "Фио" "Сумма" "Дата отгрузки" "Дата Оплаты"  
Есть "должники" с таблицей которая должна быть как отчет о не оплаченных отгрузках  
"Дата отгрузки" "Номер" "Фио" "Сумма"  
Необходимо выводить "должников" в табл (автоматически заполнять столбцы)исходя из того проставлена ли "дата отгрузки", т.е. если отгружено, значит в должники, но если стоит  "Дата Оплаты" (или только она и стоит) - значит всё ок. НО, если с начала строка попала в долги, а потом проставить оплату, то соответственно из таблицы должников всё должно исчезнуть не оставляя за собой ни пустых строк ни нолей.    
Где-то так :)  
 
Сами табличи нарисовала, если кто поможет буду примного благодарна, хотя бы с какого боку начинать, какие функции использовать.
 
Добрый день.  
Рассчитываете сделать формулами или макросами?  
Макросы использовать в работе можно?  
Сколько всего обычно строк бывает в первой таблице?  
В рабочем файле расположение таблиц именно такое и других данных на листах нет?
 
55478
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
если макросом и ниже таблици должников нет данных(если есть  - изменить цифру допустимой очистки 5000 на нужную  
 
 
Sub Выбрать()  
Лист2.Range("B3:E5000").ClearContents  
M = Лист1.Range(Cells(4, 2), Cells(Лист1.Cells(Rows.Count, 2).End(xlUp).Row, 7)).Value  
n = 3  
For r = 1 To UBound(M)  
   If M(r, 5) <> "" Then  
       If M(r, 6) = "" Then  
           Лист2.Cells(n, 2) = M(r, 5)  
           Лист2.Cells(n, 3) = M(r, 2)  
           Лист2.Cells(n, 4) = M(r, 3)  
           Лист2.Cells(n, 5) = M(r, 4)  
           n = n + 1  
       End If  
   End If  
Next r  
End Sub  
 
Думаю должников не так много, что нужно задействовать массивы или словари?
 
Ну а у меня такой вариант макроса - код поместить в модуль листа "должники":  
 
Private Sub Worksheet_Activate()  
   Dim a(), i&, ii&  
 
   a = Sheets("проводка").[b3].CurrentRegion.Value
   ReDim b(1 To UBound(a), 1 To 4)  
   ii = 1  
   For i = 2 To UBound(a)  
       If a(i, 5) <> "" Then  
           If a(i, 6) = Empty Then  
               ii = ii + 1  
               b(ii, 1) = a(i, 5)  
               b(ii, 2) = a(i, 2)  
               b(ii, 3) = a(i, 3)  
               b(ii, 4) = a(i, 4)  
           End If  
       End If  
   Next  
 
   b(1, 1) = "Дата отгрузки"  
   b(1, 2) = "Номер"  
   b(1, 3) = "ФИО"  
   b(1, 4) = "Сумма"  
 
   With [b2]
       .CurrentRegion.Clear  
       With .Resize(ii, 4)  
           .Value = b  
           .Borders.Weight = xlThin  
       End With  
   End With  
 
End Sub
 
ОУ)) Сегодня на вечер есть чем заняться ))  СПАСИБО ОГРОМНОЕ!! Буду пробовать!
Страницы: 1
Читают тему
Наверх