Como copiar uma linha N vezes (criando abaixo novas linhas) sendo que esse N varia de acordo com um valor de uma celula?


#1

Como copiar uma linha N vezes (criando abaixo novas linhas) sendo que esse N varia de acordo com um valor de uma celula?
por exemplo:


Nesse caso, o numero de linhas com informações copiadas é igual aos valores somados das colunas D (TP) e E (FN).
só em uma coluna (resultados - L) que os valores alteram (mudam de 1 para 0) e tb depende dos valores das celulas D e E, sendo que se o numero da linha for igual ou menor a TP, o valor preenchido é 1 e se for maior, 0.
Desde já, agradeço a atenção.


#2

Bom dia @ThaisGimenez.

Segue a macro conforme sua duvida. Uma duvida, a linha1 sempre tem o codigo 1 na coluna L ? Esta coluna eu nao alterei… se precisar me avise.

abs


#4

Oi de novo…
eu rodei a macro e visualizei 2 problemas:

  1. ele ta iniciando a numeração sequencial na coluna A com o numero 2.

  2. quando eu passo pra linha seguinte (pra fazer a proxima sequencia de copia e cola) ele continua com a numeração da linha anterior, quando deveria reiniciar a sequencia (1, 2, 3…).


    Vc pode me ajudar a resolver esses problemas, por favor?
    Obrigada


#5

Bom dia,

Achei que aquela em branco era para ser renumerada e ficou ali como exemplo, mas ok, está feito.

Segue a nova macro, e desculpe por nao ter entendido assim.

abs

Sub Macro1()
    
    Dim LinhaAtual As Integer, i As Integer, DmaisE As Integer, LinhaAtual2 As Integer

    ActiveCell.Rows("1:1").EntireRow.Select
    LinhaAtual = ActiveCell.Row
    DmaisE = Cells(LinhaAtual, 4) + Cells(LinhaAtual, 5)
    
    
    For i = 1 To DmaisE
        Selection.Copy
        ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
        Selection.Insert Shift:=xlDown
        ActiveCell.Select
        Application.CutCopyMode = False
        ActiveCell.Rows("1:1").EntireRow.Select

        LinhaAtual2 = ActiveCell.Row
        Cells(LinhaAtual2, 1) = i
        If i <= Cells(LinhaAtual2, 4) Then Cells(LinhaAtual2, 12) = 1 Else Cells(LinhaAtual2, 12) = 0
        
    Next
    Application.CutCopyMode = False
    Cells(LinhaAtual, 1).Select

End Sub