Página 1 de 1

Formatação de Dados

Enviado: 06 Ago 2020 às 07:01
por YummieCa
Bom dia

Gostaria de conseguir fazer manipulação de dados da seguinte forna:

Possuo uma tabela formatada com 3 colunas (Cliente | Produto | Quantidade). Conforme abaixo apresentada:

Imagem

E gostaria de usar a mesma para popular uma outra tabela. Essa tabela possui até 22 colunas (Cliente | Produto | Produto | Produto | Produto | ...). Como abaixo exemplificado:

Imagem

O objetivo é, consoante a quantidade de um determinado produto, fazer com que o codigo de produto se repita esse mesmo número na nova tabela.

Desde já agradeço, obrigada!

Re: Formatação de Dados

Enviado: 06 Ago 2020 às 08:19
por Deciog
YummieCa, Bom Dia.

Poste um modelo para que possamos fazer a formula e testar

Para anexar, vá em + resposta, adicionar anexo.

Decio

Re: Formatação de Dados

Enviado: 06 Ago 2020 às 10:11
por YummieCa
Obrigada.

O ficheiro está anexado.

Re: Formatação de Dados

Enviado: 06 Ago 2020 às 12:26
por osvaldomp
YummieCa escreveu:O ficheiro está anexado.
Se for viável utilizar uma solução via macro e você quiser experimentar, então instale uma cópia do código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor / Inserir / Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' / selecione a macro correspondente / Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 / Opções).
Essas três opções para rodar o código podem ser implantadas isoladamente ou em conjunto.
Código: Selecionar todos
Sub ReplicaDados()
 Dim k As Long, v As Long, LR As Long
  Application.ScreenUpdating = False
  With Sheets("Atual")
   For k = 3 To .Cells(Rows.Count, 2).End(3).Row
    LR = Sheets("Expetativa").Cells(Rows.Count, 2).End(3).Row
    Sheets("Expetativa").Cells(LR + 1, 2) = .Cells(k, 2)
    For v = k To k + Application.CountIf(.[B:B], .Cells(k, 2)) - 1
     Sheets("Expetativa").Cells(LR + 1, Columns.Count).End(1)(1, 2).Resize(, .Cells(v, 4)) = .Cells(v, 3)
    Next v
    k = k + Application.CountIf(.[B:B], .Cells(k, 2)) - 1
   Next k
  End With
End Sub
obs. considerei que ao rodar o código a planilha Expetativa não conterá dados, mas somente o cabeçalho na linha 2

Re: Formatação de Dados

Enviado: 06 Ago 2020 às 12:32
por Deciog
YummieCa, Boa tarde

Confere se é desta forma que desejas

Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Decio