como converter tabela em uma coluna (mostra APENAS o que eu mencionei na lista de compras da tabela)

0

Eu tenho uma tabela de lista de compras que se parece com esse exemplo:

(a1) legumes (b1) quantidade (c1) frutos (d1) quantidade (e1) bebidas (f1) quantidade

e na linha 2 e assim por diante, há a lista. então quero ver apenas a coisa que marquei em uma linha.

Exemplo: nos vegetais: 3 kg de tomate, pepino 0, 1 kg de cenoura.
então na coluna eu vejo o título (legumes) e 3 kg de tomates e cenouras 1 kg (sem o pepino) e assim por diante ...

você pode fazer isso com VBA ou FORMULA e você pode fazer isso em outra planilha ... o que você quiser.

como você pode ver, o pepino, a maçã e as laranjas NÃO estão listados na tabela à direita.

    
por Etan 25.02.2016 / 15:16

1 resposta

2

Este código VBA deve funcionar:

Public Sub summary()
    Dim wk As Workbook
    Dim ws, ws1 As Worksheet
    Set wk = ThisWorkbook
    Set ws = wk.Sheets("Sheet1")
    Set ws1 = wk.Sheets("Sheet2")
    ws1Columns = 1
    ws1Rows = 1
    maxColumns = ws.Cells(1, Columns.Count).End(xlToLeft).Column
    For i = 1 To maxColumns Step 2
        theRows = 1
        theCell = ws.Cells(theRows, i)
        theCell2 = ws.Cells(theRows, i + 1)
        While theCell <> ""
            If theCell2 <> "" Then
                ws1.Cells(ws1Rows, ws1Columns) = theCell
                ws1.Cells(ws1Rows, ws1Columns + 1) = theCell2
                ws.Cells(theRows, i).Copy
                ws1.Cells(ws1Rows, ws1Columns).PasteSpecial Paste:=xlPasteFormats
                ws.Cells(theRows, i + 1).Copy
                ws1.Cells(ws1Rows, ws1Columns + 1).PasteSpecial Paste:=xlPasteFormats
                ws1Rows = ws1Rows + 1
            End If
            theRows = theRows + 1
            theCell = ws.Cells(theRows, i)
            theCell2 = ws.Cells(theRows, i + 1)
        Wend
    Next i
End Sub

Abra VBA / Macros com ALT + F11, em ThisWorkbook adicione um novo módulo e cole este código.

Execute a macro e, se os dados originais estiverem em Sheet1 , o resultado final será em Sheet2 .

    
por 26.02.2016 / 12:32