Converte várias linhas em uma única linha para o mesmo material

0

Eu tenho várias linhas para cada Material (o número de linhas varia) com valores diferentes para Fabricantes & Números de peça do fabricante. Eu preciso converter isso em uma linha para cada material com todos os fabricantes e número de peça de fabricação na mesma linha.

Exemplo fornecido abaixo, pois não consigo anexar imagens:

Dados existentes

Material1 Mfgr1 MPN11    
          Mfgr2 MPN12

Material2 Mfgr2 MPN21    
          Mfgr3 MPN22    
          Mfgr4 MPN23

Dados necessários

Material1 Mfgr1 MPN11 Mfgr2 MPN12    
Material2 Mfgr2 MPN21 Mfgr3 MPN22 Mfgr4 MPN23
    
por Ravi 13.04.2015 / 07:54

1 resposta

0

Este código fará o truque:

Sub materialsinglerow()
Dim wkb As Workbook
Dim wks, wks1 As Worksheet
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(1)
Set wks1 = wkb.Sheets(2)
continue = True
i = 1
j = 0
k = 2
emptycount = 0
lastmaterial = ""
While continue = True
    material = wks.Cells(i, 1)
    mfgr = wks.Cells(i, 2)
    mpn = wks.Cells(i, 3)
    If material <> "" Then
        j = j + 1
        k = 2
        wks1.Cells(j, 1) = material
        lastmaterial = material
    End If
    If mfgr <> "" Then
        wks1.Cells(j, k) = mfgr
        k = k + 1
        wks1.Cells(j, k) = mpn
        k = k + 1
    Else
        emptycount = emptycount + 1
    End If
    If emptycount > 10 Then
        continue = False
    End If
    i = i + 1
Wend

Ele lê os dados de Folha1 e grava os resultados em Folha2 , assumindo que os dados originais estão nas colunas A, B and C .

Ele pára quando há mais de 10 células vazias na coluna C .

    
por 13.04.2015 / 11:44