Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
Por YummieCa
#57707
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!
Avatar do usuário
Por Deciog
Avatar
#57710
YummieCa, Bom Dia.

Poste um modelo para que possamos fazer a formula e testar

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

Decio
Por osvaldomp
#57716
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
Avatar do usuário
Por Deciog
Avatar
#57717
YummieCa, Boa tarde

Confere se é desta forma que desejas

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

Decio
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord