Страницы: 1
RSS
Создание новой строки в файле отчета, ориентируясь по номеру аббонента
 
Есть отчёт со счётчиками и номерами абонента.
Нужно автоматически добавить новые строки после абонентов в строке "С" т.е если их несколько то перед другим номером аббонента, должна вставляться новая строка в которой уже будут считаться формулы суммирования.
 
ottobalt, дд. а пример корвый
Код
Sub ddd()
Dim i As Long, rng As Range
Dim lr As Long
lr = Cells(Rows.Count, 3).End(xlUp).Row
For i = lr To 5 Step -1
    If Not Cells(i, 3) = Cells(i - 1, 3) And Cells(i, 3) <> "" Then
    x = i + k
        Rows(x + 1).EntireRow.Insert
        Cells(x + 1, 1) = "итого по потребителю"
        Range("A" & x + 1 & ":L" & x + 1).Interior.Color = 5296274
        Cells(x + 1, 6) = "=sum(" & Range(Cells(i, 6), Cells(x, 6)).Address & ")"
        Cells(x + 1, 7) = "=sum(" & Range(Cells(i, 7), Cells(x, 7)).Address & ")"
        Cells(x + 1, 9) = "=sum(" & Range(Cells(i, 9), Cells(x, 9)).Address & ")"
        Cells(x + 1, 8) = "=" & Cells(x + 1, 9).Address & "/" & Cells(x + 1, 6).Address
        Cells(x + 1, 10) = "=sum(" & Range(Cells(i, 10), Cells(x, 10)).Address & ")"
        Cells(x + 1, 12) = "=sum(" & Range(Cells(i, 12), Cells(x, 12)).Address & ")"
        Cells(x + 1, 11) = "=" & Cells(x + 1, 12).Address & "/" & Cells(x + 1, 10).Address
        k = 0
    Else
        k = k + 1
    End If
Next i
End Sub

Не бойтесь совершенства. Вам его не достичь.
 
Да макрос работает, а нельзя в этот макрос вставить формулу которую вы мне ранее сделали вставить макросом в ячейки ?
(=СУММ(ИНДЕКС($1:$1048576;ЕСЛИОШИБКА(ПРОСМОТР(2;1/("итого по потребителю"=$A$7:$A10);СТРОКА($A$7:$A10))+1;7);СТОЛБЕЦ()):ИНДЕКС($1:$1048576;ЕСЛИОШИБКА(ПРОСМОТР(2;1/("итого по потребителю"=$A$7:$A11);СТРОКА($A$7:$A11))-1;7);СТОЛБЕЦ()))   )
вот эта формула .
 
ottobalt, не понял ничего..зачем вставлять формулу макросом? куда вставлять?  и что эта формула делает (просто разбираться в ней это не очень хорошая идея), а еще тема ни как не связана  с формулой т.е. ответ на вопросы темы
Цитата
ottobalt написал:
Создание новой строки в файле отчета
выглядит так:
Код
Sub ddd()
Dim i As Long
lr = Cells(Rows.Count, 3).End(xlUp).Row
For i = lr To 5 Step -1
    If Not Cells(i, 3) = Cells(i - 1, 3) And Cells(i, 3) <> "" Then
    x = i + k
        Rows(x + 1).EntireRow.Insert
        Cells(x + 1, 1) = "итого по потребителю"
        Range("A" & x + 1 & ":L" & x + 1).Interior.Color = 5296274
        k = 0
    Else
        k = k + 1
    End If
Next i
End Sub

Изменено: Mershik - 08.07.2020 10:53:42
Не бойтесь совершенства. Вам его не достичь.
 
Вы абсолютно правы,я просто не понимаю макросы и практически ничего о них не знаю.
Те формулы в ячейках которые есть в файле они просто суммируют предыдущие значения и если в ячейке попадается ошибка в целом тоже будет ошибка.
Вы до этого мне помогли сделать формулу которая суммирует все ячейки автоматически и не считает ошибки.
 
ottobalt, ну просто думаю стоит создать новую тему где отразить что есть и что должно быть и этот макрос -  и вопрос наверное типа (если правильно понимаю) "VBA суммирование показаний приборов учета по каждому абоненту исключая ошибочные данные и деление на 0"
Не бойтесь совершенства. Вам его не достичь.
 
Хорошо я так и сделаю.
Спасибо большое.
Страницы: 1
Наверх