Страницы: 1
RSS
Сведение поступлений/расходов материалов с разных листов на один.
 
Добрый день, суть проблемы такова, 3 листа приход, расход и оборотка, в оборотке я сделал поиск одинаковых ячеек и объединение их в одну ячейку из прихода и расхода, но когда идет перерасчет очень долго думает. помогите мне с макросом реализовать тоже самое
файлик прилагаю  
Изменено: jimm232 - 26.05.2020 12:22:25
 
прошу прощения затупил, исправил
 
Заменил
 
Цитата
jimm232 написал:
в оборотке я сделал поиск одинаковых ячеек и объединение их в одну ячейку из прихода и расхода
- и где это?
 
Формулой прописано на листе в оборотки. Столбец А
Изменено: jimm232 - 26.05.2020 13:53:36
 
Пальцем ткните пожалуйста. Не вижу что там что-то где-то объединено в одну ячейку. Если вообще я верно понял
Цитата
jimm232 написал:
на листе в оборотки
И покажите как должно выглядеть, если то что есть не устраивает.
 
jimm232, вы наверное путаете понятия объеденнение
Цитата
jimm232 написал:
объединение их в одну ячейку
это подразумевает что в одной ячейке будут записаны данные через какой-ллтбо разделитель ( или без него)...
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Hugo написал:
Пальцем ткните пожалуйста. Не вижу что там что-то где-то объединено в одну ячейку. Если вообще я верно понял
на листе оборотная ведомость в столбце А прописана эта формула {=ИНДЕКС('Поступление товаров'!$A$4:$A$12000;ПОИСКПОЗ(;СЧЁТЕСЛИ('Оборотная ведомость'!A$3:A3;'Поступление товаров'!A$4:A$12000);))}. она ищет на листах расход и поступление в столбцах А одинаковые названия и отображает их в одной ячейки точно так же он ищет и по единицам измерения.
не устраивает меня то, что когда идет перерасчет формул, очень долго думает, хочу попробовать с макросом
Цитата
Mershik написал:
это подразумевает что в одной ячейке будут записаны данные через какой-ллтбо разделитель ( или без него)...
без разделителя т.е. например за какое то число пришел товар с каким либо названием, в другое число пришел тот же товар с таким же названием, его вбили в приход товара, в оборотке отображается одно название только меняется его количество
Изменено: jimm232 - 26.05.2020 14:57:28
 
jimm232, еще раз на языке excel объединение в одну ячейку это не то что вы хотите ССЫЛКА
Не бойтесь совершенства. Вам его не достичь.
 
Наверное я не правильно выразился.  
 
jimm232, в этом то и проблема....
Цитата
jimm232 написал:
не правильно выразился
Тема: Сведение поступлений/расходов материалов с разных листов на один.
Код
Sub аааааа()
Dim rng As Range, MyVal As Range, MyVal2 As Range
Dim sh As Worksheet, ShOV As Worksheet, ShPT As Worksheet, ShRash As Worksheet
Dim col As New Collection
Set ShOV = Worksheets("Оборотная ведомость")
Set ShPT = Worksheets("Поступление товаров")
Set ShRash = Worksheets("Расход")
ShOV.Range("A4:G" & ShOV.Cells(Rows.Count, 1).End(xlUp).Row + 1).Clear
On Error Resume Next
For Each sh In Worksheets
    If sh.Name = "Расход" Or sh.Name = "Поступление товаров" Then
    
        Set rng = sh.Range("A4:A" & sh.Cells(Rows.Count, 1).End(xlUp).Row)
        For Each cell In rng
            If Not IsEmpty(cell) Then col.Add cell.Value, CStr(cell.Value)
        Next cell
        End If
        
        For i = 1 To col.Count
            ShOV.Cells(3 + i, 1) = col(i)
        Next i
Next sh
        For n = 4 To ShOV.Cells(Rows.Count, 1).End(xlUp).Row
            Set MyVal = ShPT.Columns(1).Find(ShOV.Cells(n, 1))
            Set MyVal2 = ShPash.Columns(1).Find(ShOV.Cells(n, 1))
            If Not MyVal1 Is Nothing Then
                ShOV.Cells(n, 2) = MyVal.Offset(0, 3)
            If Not MyVal2 Is Nothing Then
                ShOV.Cells(n, 2) = MyVal2.Offset(0, 6)
            End If
            End If
                ShOV.Cells(n, 5) = Application.WorksheetFunction.SumIf(ShPT.Range("A:A"), ShOV.Cells(n, 1), ShPT.Range("E:E"))
                ShOV.Cells(n, 6) = Application.WorksheetFunction.SumIf(ShPash.Range("A:A"), ShOV.Cells(n, 1), ShPash.Range("H:H"))
                ShOV.Cells(n, 7) = ShOV.Cells(n, 5) - ShOV.Cells(n, 6)
        Next n
End Sub
Изменено: Mershik - 26.05.2020 15:50:18
Не бойтесь совершенства. Вам его не достичь.
 
именно то что мне надо!!!! только при нажатии кнопочки он границы таблицы очищает, но я думаю это мелочи.Спасибо огромное
 
jimm232,
Цитата
jimm232 написал:
олько при нажатии кнопочки он границы таблицы очищает
добавте в конец макроса после next n
Код
 ShOV.Range(Cells(4, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 7)).Borders.Weight = xlThin
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
ShOV.Range(Cells(4, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 7)).Borders.Weight = xlThin
добавил но не чего не происходит
 
jimm232, а я просто забыл, обновил макрос выше (файле видимо старый) значит так попробуйте
Код
 Worksheets("Оборотная ведомость").Range(Cells(4, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 7)).Borders.Weight = xlThin
Изменено: Mershik - 26.05.2020 21:00:21
Не бойтесь совершенства. Вам его не достичь.
 
ооооо, супер, спасибо огромное за помощь
Страницы: 1
Наверх