Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia ,
Pessoal, tenho um modelo com uma tabela dinâmica.
Onde possui produto e categoria.
Preciso construir uma macro, que faça a quebra por categoria descarregando os itens por categoria em cada aba.
Segue um exemplo do qlik e do excel como deveria ficar.
Atenciosamente,
Maicon Mello
Maicon, nos informe qual é a sua dificuldade no desenvolvimento deste processo para podermos lhe ajudar melhor.
Você já consegue exportar uma tabela para o excel? Caso sim, a ideia é fazer com que a macro faça um loop em seu campo e depois exportar esse trecho de código no excel.
Um exemplo de loop no campo:
ActiveDocument.Fields("CAMPO_QUE_VAI_FAZER_LOOP").SelectPossible
x = ActiveDocument.Evaluate("concat(CAMPO_QUE_VAI_FAZER_LOOP, ',')")
val = Eval("Array(" + x + ")")
for i = 0 to UBound(val)
ActiveDocument.GetApplication.WaitForIdle
ActiveDocument.Fields("CAMPO_QUE_VAI_FAZER_LOOP").Select val(i)
ActiveDocument.GetApplication.WaitForIdle
next
Yuri, bom dia, hoje uso essa aqui :
Dúvida é criar novas abas e jogar os dados para cada uma.
Sub Exportar_Objetos_Excel
'Setando o Objeto que será exportado
Set Objetos = ActiveDocument.GetSheetObject("TB01")
'Definições do arquivo Excel
Set XLApp = CreateObject("Excel.Application")
Set XLDoc = XLApp.Workbooks.Add
Set XLSheet = XLDoc.Worksheets(1)
XLApp.Visible = True
'Selecionando e excluido as bordas de toda a Aba Excel
XLApp.Cells.Select
XLApp.ActiveWindow.DisplayGridlines = False
'Selecionando a Célula A1 e colando o conteúdo do Objeto CH01
XLApp.Range("A5").Select
'Para exportar os dados como tabela utilize o CopyTableToClipboard
' ActiveDocument.GetSheetObject("CH01").CopyTableToClipboard True
'Para exportar o gráfico como imagem utilize o CopyBitMapToClipboard
'ActiveDocument.GetSheetObject("CH01").CopyBitMapToClipboard
XLSheet.Paste
'Selecionando a célula A1
XLSheet.Range("A1").Select
sub end
É só colocar o código dentro do loop que te passei, mais ou menos assim:
ActiveDocument.Fields("CAMPO_QUE_VAI_FAZER_LOOP").SelectPossible
x = ActiveDocument.Evaluate("concat(CAMPO_QUE_VAI_FAZER_LOOP, ',')")
val = Eval("Array(" + x + ")")
for i = 0 to UBound(val)
ActiveDocument.GetApplication.WaitForIdle
ActiveDocument.Fields("CAMPO_QUE_VAI_FAZER_LOOP").Select val(i)
ActiveDocument.GetApplication.WaitForIdle
Set XLDoc = XLApp.Workbooks.Add
Set XLSheet = XLDoc.Worksheets(i)
'AQUI VOCE COLOCA A MACRO PARA COPIAR A INFORMACAO E COLAR NA ABA CRIADA DO EXCEL
next
Não vai Yuri, ele gera 9 planilhas.
O que quero é gerar uma única planilha com 4 abas nesse caso.
dá uma olhada aqui:
Já achou uma solução? Se sim e alguma das resposta te ajudou, marque-a como "Correta" para fechar o tópico.