Como dividir uma única linha em várias linhas com base na quantidade no Excel?

0

Eu tenho uma planilha que lista equipamentos médicos (identificados pelo JSN) em uma sala. Um único equipamento (JSN) pode ter várias quantidades dentro de uma sala. Gostaria de separar todas as linhas que têm uma quantidade maior que 1 em várias linhas com os mesmos dados, alterando simultaneamente a quantidade para 1 EA. Aqui está um exemplo de como é a planilha existente (menos outras colunas):

Nomenclature           JSN          Wayfinding Rm #        QTY         Installed
Shelving, Solid       M2090             40-179              3           5/5/15
Waste Can, Swing      F2010             11-087              2           9/9/15
Stand, Mayo, Screw    M8810             11-078              1           8/1/15

Aqui está o que eu preciso para parecer:

Nomenclature          JSN          Wayfinding Rm #         QTY       Installed
Shelving, Solid       M2090             40-179              1           5/5/15
Shelving, Solid       M2090             40-179              1           5/5/15
Shelving, Solid       M2090             40-179              1           5/5/15
Waste Can, Swing      F2010             11-087              1           9/9/15
Waste Can, Swing      F2010             11-087              1           9/9/15
Stand, Mayo, Screw    M8810             11-078              1           8/1/15

Qualquer ajuda seria muito apreciada. Por favor, note que acabei de descobrir sobre VBAs e Macros HOJE! Tentando aprender. Muito obrigado a qualquer um que possa ajudar este novato que está lutando, mas ansioso!

    
por Maurice 22.09.2015 / 18:48

1 resposta

0

Algo como isso deve funcionar, supondo que esses dados iniciem na célula A1

Na verdade - aqui, eles ficarão em ordem

Sub test()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim howmany As Integer
For i = lastrow To 1 Step -1
    If Cells(i, 4) > 1 Then
       howmany = Cells(i, 4)
       For j = 1 To howmany - 1
       Rows(i + 1).Insert (xlShiftDown)
       Cells(i, 4) = 1
       Cells(i + 1, 1) = Cells(i, 1)
       Cells(i + 1, 2) = Cells(i, 2)
       Cells(i + 1, 3) = Cells(i, 3)
       Cells(i + 1, 4) = Cells(i, 4)
       Cells(i + 1, 5) = Cells(i, 5)
       Next
    End If
Next

End Sub

Este coloca-os no final:

Sub test()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim nextrow As Integer
nextrow = lastrow + 1
Dim howmany As Integer
For i = 1 To lastrow
    If Cells(i, 4) > 1 Then
       howmany = Cells(i, 4)
       For j = 1 To howmany - 1
       Cells(i, 4) = 1
       Cells(nextrow, 1) = Cells(i, 1)
       Cells(nextrow, 2) = Cells(i, 2)
       Cells(nextrow, 3) = Cells(i, 3)
       Cells(nextrow, 4) = Cells(i, 4)
       Cells(nextrow, 5) = Cells(i, 5)
       nextrow = nextrow + 1
       Next
    End If
Next

End Sub
    
por 22.09.2015 / 19:26