Como escrever código VBA que procura uma célula para um cabeçalho de coluna em outra planilha, então retorna a coluna correspondente? [fechadas]

0

Por isso, tenho uma planilha completa de clientes como colunas e produtos como linhas, as células cruzadas indicando quantas de cada cliente o cliente comprou. Em outra planilha, quero poder executar uma macro que eleve todos os produtos e liste o número comprado para apenas um cliente.

Eu tenho outra macro que exclui as linhas em branco, deixando apenas os produtos que o cliente comprou.

    
por Greg 17.06.2015 / 19:04

1 resposta

0

Com dados como:

Comoexecutarestamacro:

SubprodList()DimcustAsString,rLookAsRange,msgAsStringDimctAsVariant,rAsRangecust=Application.InputBox(Prompt:="Enter Customer Name", Type:=2)
Set rLook = Range("1:1").Find(What:=cust, After:=Range("A1")).EntireColumn

msg = ""
For Each r In rLook.Cells
    pr = Cells(r.Row, 1).Value
    If pr = "" Then Exit For
    ct = CStr(r.Value)
    If ct <> "" Then
        msg = msg & vbCrLf & pr & vbTab & ct
    End If
Next r

MsgBox msg
End Sub

Será exibido:

EDIT#1:

ParaarmazenarasaídaemFolha2useestamacro:

SubprodList2()DimcustAsString,rLookAsRange,KAsLongDimctAsVariant,rAsRangecust=Application.InputBox(Prompt:="Enter Customer Name", Type:=2)
    Set rLook = Range("1:1").Find(What:=cust, After:=Range("A1")).EntireColumn

    K = 1
    For Each r In rLook.Cells
        pr = Cells(r.Row, 1).Value
        If pr = "" Then Exit For
        ct = CStr(r.Value)
        If ct <> "" Then
            Sheets("Sheet2").Cells(K, 1) = pr
            Sheets("Sheet2").Cells(K, 2) = ct
            K = K + 1
        End If
    Next r
End Sub
    
por 17.06.2015 / 19:59