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

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por DalPai
Posts
#35747
Boa Tarde,

Comecei a estagiar num escritório onde meu chefe pediu a seguinte coisa:

"Vou te passar os KPI's de Sales para você automatizar e já começar a gerar os dashboards"

Pelo que eu entendi...o escritório usa um site para gerar diversos relatórios em "Planilhas Binárias de Excel". Meu chefe pega esses dados e monta um dashboard (copia os dados da planilha binária e cola no arquivo onde estão os dashboards). Mas ele quer parar de usar esse Ctrl + C, Ctrl + V e fazer algo mais automático.

Tenho uma pequena noção de macro e absolutamente 0 conhecimento sobre VBA. Mas imaginei que rolaria de fazer essa automatização utilizando eles.

Meu pensamento está correto? Se sim, poderiam indicar algum material online para me auxiliar?
Caso não...Existe algum método mais prático para realizar isso?

Grato desde já
Por mprudencio
Posts
#35748
Jeito tem!

Se quiser ajuda nos arquivos poste alguns exemplos.
Se quiser fazer sozinho no youtube vc encontar muita coisa boa que pode te auxiliar.
Por DalPai
Posts
#35770
No fim foi algo mais fácil do que eu imagina (por hora). Mas ainda estou com alguns problemas. Tentarei exemplificar:

Tenho um arquivo com 20 colunas, onde uma dessas colunas contem diversos nomes:
Nome
Amanda
Amanda
Amanda
Andressa
Andressa
Barbara
Barbara
Barbara
Barbara
Beatriz
Beatriz
Beatriz
Daniela
Daniele
Daniele
Daniele
Daniele
Daniele
Eduardo
Eduardo
Eduardo
Eduardo
Quero contar quantas vezes cada nome se repete. Para isso utilizei uma tabela dinâmica, jogando o campo Nome em Linhas e também em Valores. Funcionou perfeitamente. Mas na quando gravei essa rotina na macro e coloquei para executar, o excel não joga o campo Nome em Linhas. Ele joga somente em Valores, retornando a soma total. Como posso resolver esse problema? Existe algum jeito mais prático de fazer isso?
Código: Selecionar todos
Sub Contagem_CVR()
'
' Contagem_CVR Macro
'
' Atalho do teclado: Ctrl+Shift+C
'
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    Columns("L:L").Select
    Selection.Copy
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Planilha1!R1C1:R1048576C1", Version:=6).CreatePivotTable TableDestination _
        :="Planilha2!R3C1", TableName:="Tabela dinâmica1", DefaultVersion:=6
    Sheets("Planilha2").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields( _
        "Commercial Visit Report: Created By")
        .Orientation = xlRowField
        .Position = 1
    End With
        ActiveSheet.PivotTables("Tabela dinâmica1").AddDataField ActiveSheet. _
        PivotTables("Tabela dinâmica1").PivotFields( _
        "Commercial Visit Report: Created By"), _
        "Contagem de Commercial Visit Report: Created By", xlCount
        
    End Sub
Outra coisa que percebi é que consigo usar essa macro somente uma vez (tenho que fechar e abrir o arquivo novamente para executa-la uma outra vez). Quando tento uma segunda vez aparece o erro "Argumento ou chamada de procedimento inválida", e destaque a seguinte parte do código:
Código: Selecionar todos
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Planilha1!R1C1:R1048576C1", Version:=6).CreatePivotTable TableDestination _
        :="Planilha2!R3C1", TableName:="Tabela dinâmica1", DefaultVersion:=6
Como proceder?
Avatar do usuário
Por gfranco
Avatar
#35771
Boa tarde.
Se o seu objetivo é só contar quantas vezes cada nome se repete, não precisa criar uma tabela dinâmica via VBA.
Apenas converta o intervalo de dados em uma tabela e depois crie a tabela dinamica a partir dessa tabela.
Quando os dados da coluna nome mudarem, basta ir na guia "dados" e clicar em "atualizar tudo"
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