Israel que a Aula foi interessante não resta menor dúvida. Mas para mim que sou Leigo no assunto (VBA) mesmo estando praticando o EXCEL já no nível MÉDIO, nesta fase pouco me ajuda entender os Códigos VBA, lógico que com o passar do tempo essa Complexidade sobre VBA tende a diminuir, o inicio é sempre assim qualquer que seja o assunto, a sensação é de improvável. Porém espero que seja atenuativo a progressão do meu aprendizado. Porque o VBA é complexo, mas com a evolução do nível de conhecimento imagino torna-se Fascinante. Dt: 30/12/2022
Como trabalhar com matrizes gera um ganho muito significativo na performance. Se possível, faça mais vídeos contendo exemplos para o uso de matrizes. Obrigado
Esse código é incrível. muito obrigado por compartilhar este conteúdo. Me ajudou demais. A velocidade em relação a forma que eu fazia é absurda. kkkk Saberia me dizer se é possivel aplicar funções como Find, Somases, cont dps da estrutra For? E se é possivel no Redim mes(1 to lin, 1 to 4) as variant -podemos definir mais de uma coluna e pode calcular varias colunas de uma vez?
Fala galera Consegui a estrutura de calcular várias colunas na mesma variável do redim e cálculos como somases e cont.ses. código exemplo é na mesma planilha. Vlw Na parte onde informa onde os dados deverão ser descarregados, deverá constar o mesmo número de colunas na variável, segue exemplo: Sub DiretoNaMatriz() Dim base As Variant Dim mes As Variant Dim nLin As Long, i As Long Dim tempo As Double tempo = Timer base = Range("A1").CurrentRegion.Value 'nLin = Range("A1").CurrentRegion.Rows.Count nLin = UBound(base, 1) ReDim mes(1 To nLin, 1 To 5) As Variant 'cabecalho das variaveis mes(1, 1) = "Ano" mes(1, 2) = "mes" mes(1, 3) = "diasemana" mes(1, 4) = "dianum" mes(1, 5) = "nomemes" For i = 2 To nLin mes(i, 1) = Year(base(i, 2)) mes(i, 2) = Left(MonthName(Month(base(i, 2))), 3) mes(i, 3) = Format(base(i, 2), "ddd") mes(i, 4) = Format(base(i, 2), "dd") mes(i, 5) = Format(base(i, 2), "mmmm") Next i 'Range("A1").CurrentRegion.Columns(31).Value = mes Range("AE1:AI" & nLin).Value = mes tempo = Timer - tempo MsgBox tempo End Sub E para cálculo de fórmulas deverá aplicar um set range dos dados que quer calcular. Segue exemplo: Sub calculoNaMatriz() Dim base As Variant Dim total As Variant Dim nLin As Long, i As Long Dim tempo As Double Dim busca_veiculos As Range Dim busca_feridos As Range tempo = Timer base = Range("A1").CurrentRegion.Value Set busca_veiculos = Range("Y:Y") Set busca_feridos = Range("X:X") 'nLin = Range("A1").CurrentRegion.Rows.Count nLin = UBound(base, 1) ReDim total(1 To 1, 1 To 2) As Variant total(1, 1) = WorksheetFunction.Sum(busca_veiculos) total(1, 2) = WorksheetFunction.Sum(busca_feridos) Range("AK1").Value = "total_veiculos" Range("AL1").Value = "total_feridoss" Range("AK2:AL2").Value = total End Sub
Fala galera Consegui a estrutura de calcular várias colunas na mesma variável do redim e cálculos como somases e cont.ses. código exemplo é na mesma planilha. Vlw Na parte onde informa onde os dados deverão ser descarregados, deverá constar o mesmo número de colunas na variável, segue exemplo: Sub DiretoNaMatriz() Dim base As Variant Dim mes As Variant Dim nLin As Long, i As Long Dim tempo As Double tempo = Timer base = Range("A1").CurrentRegion.Value 'nLin = Range("A1").CurrentRegion.Rows.Count nLin = UBound(base, 1) ReDim mes(1 To nLin, 1 To 5) As Variant 'cabecalho das variaveis mes(1, 1) = "Ano" mes(1, 2) = "mes" mes(1, 3) = "diasemana" mes(1, 4) = "dianum" mes(1, 5) = "nomemes" For i = 2 To nLin mes(i, 1) = Year(base(i, 2)) mes(i, 2) = Left(MonthName(Month(base(i, 2))), 3) mes(i, 3) = Format(base(i, 2), "ddd") mes(i, 4) = Format(base(i, 2), "dd") mes(i, 5) = Format(base(i, 2), "mmmm") Next i 'Range("A1").CurrentRegion.Columns(31).Value = mes Range("AE1:AI" & nLin).Value = mes tempo = Timer - tempo MsgBox tempo End Sub E para cálculo de fórmulas deverá aplicar um set range dos dados que quer calcular. Segue exemplo: Sub calculoNaMatriz() Dim base As Variant Dim total As Variant Dim nLin As Long, i As Long Dim tempo As Double Dim busca_veiculos As Range Dim busca_feridos As Range tempo = Timer base = Range("A1").CurrentRegion.Value Set busca_veiculos = Range("Y:Y") Set busca_feridos = Range("X:X") 'nLin = Range("A1").CurrentRegion.Rows.Count nLin = UBound(base, 1) ReDim total(1 To 1, 1 To 2) As Variant total(1, 1) = WorksheetFunction.Sum(busca_veiculos) total(1, 2) = WorksheetFunction.Sum(busca_feridos) Range("AK1").Value = "total_veiculos" Range("AL1").Value = "total_feridoss" Range("AK2:AL2").Value = total End Sub
Boa aula Israel! Mas eu tenho uma dúvida. Seria possível fazer a mesma coisa com uma listview? Se sim, você poderia fazer um vídeo mostrando o código com esse mesmo arquivo? Obrigado!
Se fosse usar a função IF Comparando duas células que estão em colunas diferentes? Seria essa variável mês representando uma coluna e outra Variável tbm representando a outra coluna ?
Em nosso curso temos alguns projetos com banco em access, mas nenhum deles é um controle de estoque, no entanto todos eles te dão base suficiente de conhecimento para criar o seu próprio controle de estoque
@@DATA7Academy O princípio é o mesmo, usando as boas práticas de uso do Excel, procurar sempre usar a memória que é mais rápido, como você utilizou, mas a diferença é fazer esse trabalho sem uso de loop e sim rodar isso em bloco, desta forma será instantâneo. #FICAADICA
@@carlosfuno8144 entendi, mas a proposta do vídeo nao era essa e sim fazer uma comparação entre preencher direto na célula e usar a memória, e para que a comparação seja justa eu usei o loop em ambos os casos.
Não seria mais justo a comparação dos dois códigos fazendo "Application.ScreenUpdating = False" no caso 1 ? Para cada valor lançado no caso 1 a tela atualiza e o custo de tempo é muito impactante. só não testo agora pois são 03:00h hauhauahsue
Curso de VBA do Zero ao Avançado - Assine por apenas R$49,90 por mês sem fidelidade👇🏼
data7academy.com.br/?origem=yt_org_codigoperfomaticovba
Show. Até o primeiro modo que tu usou já ajudará muito em minhas extensas planilhas. Vlw. Sucesso, fera!
Cara, vc é fera demaisss!!! Aprendo muito contigo!! Puro talento!!!
O muito top essa sacada....aplicarem em todos meus códigos.....fiquei impressionado com o ganho de eficiência
Muito bom. Ajudou.
Obrigado.
Extremamente performático em qualquer utilidade. E a programação em si toma até menos tempo também e é mais enxuta. Sensacional, VBA Academy 👏👏👏👏👏
Aula sensacional! Didática nota 1000! Muito obrigado!
Excelente trabalho!!!!!!!!!!!
Muitíssimo obrigado, Carlos
Israel que a Aula foi interessante não resta menor dúvida. Mas para mim que sou Leigo no assunto (VBA) mesmo estando praticando o EXCEL já no nível MÉDIO, nesta fase pouco me ajuda entender os Códigos VBA, lógico que com o passar do tempo essa Complexidade sobre VBA tende a diminuir, o inicio é sempre assim qualquer que seja o assunto, a sensação é de improvável. Porém espero que seja atenuativo a progressão do meu aprendizado. Porque o VBA é complexo, mas com a evolução do nível de conhecimento imagino torna-se Fascinante.
Dt: 30/12/2022
Luciano de Presidente Prudente. Obrigado por compartilhar conhecimentos. Sou viciado em Excel, com suas aulas fiquei pior. Muito obrigado mesmo.
VBA Academy diferenciado....aborda matrizes e arrays Parabéns !!
excelente
Ansioso, aguardando a continuacao de uso de matriz para procura de valores
Muito bom! Obrigado por compartilhar! Faça maus exemplos mostrando o uso de matrizes. Abraços.
Simplesmente FANTÁSTICO.
FENOMENAL ... Ainda vou fazer o seu curso ..
Parabéns
Como trabalhar com matrizes gera um ganho muito significativo na performance. Se possível, faça mais vídeos contendo exemplos para o uso de matrizes. Obrigado
muito maneiro, curto muito esse canal, são sempre dicas muito mais práticas e menos linhas de programação.
Bicho, que aulão foda! Parabéns pela aula!!
boa noite, vcs são os melhores
Israel como sempre sensacional. Prepara mais aulas como está sobre matriz, fazer comparativos na memória, e o que eu mais sinto falta.
Esse código é incrível. muito obrigado por compartilhar este conteúdo. Me ajudou demais. A velocidade em relação a forma que eu fazia é absurda. kkkk
Saberia me dizer se é possivel aplicar funções como Find, Somases, cont dps da estrutra For?
E se é possivel no Redim mes(1 to lin, 1 to 4) as variant -podemos definir mais de uma coluna e pode calcular varias colunas de uma vez?
Fala galera
Consegui a estrutura de calcular várias colunas na mesma variável do redim e cálculos como somases e cont.ses. código exemplo é na mesma planilha.
Vlw
Na parte onde informa onde os dados deverão ser descarregados, deverá constar o mesmo número de colunas na variável, segue exemplo:
Sub DiretoNaMatriz()
Dim base As Variant
Dim mes As Variant
Dim nLin As Long, i As Long
Dim tempo As Double
tempo = Timer
base = Range("A1").CurrentRegion.Value
'nLin = Range("A1").CurrentRegion.Rows.Count
nLin = UBound(base, 1)
ReDim mes(1 To nLin, 1 To 5) As Variant
'cabecalho das variaveis
mes(1, 1) = "Ano"
mes(1, 2) = "mes"
mes(1, 3) = "diasemana"
mes(1, 4) = "dianum"
mes(1, 5) = "nomemes"
For i = 2 To nLin
mes(i, 1) = Year(base(i, 2))
mes(i, 2) = Left(MonthName(Month(base(i, 2))), 3)
mes(i, 3) = Format(base(i, 2), "ddd")
mes(i, 4) = Format(base(i, 2), "dd")
mes(i, 5) = Format(base(i, 2), "mmmm")
Next i
'Range("A1").CurrentRegion.Columns(31).Value = mes
Range("AE1:AI" & nLin).Value = mes
tempo = Timer - tempo
MsgBox tempo
End Sub
E para cálculo de fórmulas deverá aplicar um set range dos dados que quer calcular. Segue exemplo:
Sub calculoNaMatriz()
Dim base As Variant
Dim total As Variant
Dim nLin As Long, i As Long
Dim tempo As Double
Dim busca_veiculos As Range
Dim busca_feridos As Range
tempo = Timer
base = Range("A1").CurrentRegion.Value
Set busca_veiculos = Range("Y:Y")
Set busca_feridos = Range("X:X")
'nLin = Range("A1").CurrentRegion.Rows.Count
nLin = UBound(base, 1)
ReDim total(1 To 1, 1 To 2) As Variant
total(1, 1) = WorksheetFunction.Sum(busca_veiculos)
total(1, 2) = WorksheetFunction.Sum(busca_feridos)
Range("AK1").Value = "total_veiculos"
Range("AL1").Value = "total_feridoss"
Range("AK2:AL2").Value = total
End Sub
Obrigado pelo conteúdo não me arrependo de ter comprado o curso
Show! Parabéns!
Excelente dica
Massa, gosto muito de usar as Matrizes / Arrays
Fala galera
Consegui a estrutura de calcular várias colunas na mesma variável do redim e cálculos como somases e cont.ses. código exemplo é na mesma planilha.
Vlw
Na parte onde informa onde os dados deverão ser descarregados, deverá constar o mesmo número de colunas na variável, segue exemplo:
Sub DiretoNaMatriz()
Dim base As Variant
Dim mes As Variant
Dim nLin As Long, i As Long
Dim tempo As Double
tempo = Timer
base = Range("A1").CurrentRegion.Value
'nLin = Range("A1").CurrentRegion.Rows.Count
nLin = UBound(base, 1)
ReDim mes(1 To nLin, 1 To 5) As Variant
'cabecalho das variaveis
mes(1, 1) = "Ano"
mes(1, 2) = "mes"
mes(1, 3) = "diasemana"
mes(1, 4) = "dianum"
mes(1, 5) = "nomemes"
For i = 2 To nLin
mes(i, 1) = Year(base(i, 2))
mes(i, 2) = Left(MonthName(Month(base(i, 2))), 3)
mes(i, 3) = Format(base(i, 2), "ddd")
mes(i, 4) = Format(base(i, 2), "dd")
mes(i, 5) = Format(base(i, 2), "mmmm")
Next i
'Range("A1").CurrentRegion.Columns(31).Value = mes
Range("AE1:AI" & nLin).Value = mes
tempo = Timer - tempo
MsgBox tempo
End Sub
E para cálculo de fórmulas deverá aplicar um set range dos dados que quer calcular. Segue exemplo:
Sub calculoNaMatriz()
Dim base As Variant
Dim total As Variant
Dim nLin As Long, i As Long
Dim tempo As Double
Dim busca_veiculos As Range
Dim busca_feridos As Range
tempo = Timer
base = Range("A1").CurrentRegion.Value
Set busca_veiculos = Range("Y:Y")
Set busca_feridos = Range("X:X")
'nLin = Range("A1").CurrentRegion.Rows.Count
nLin = UBound(base, 1)
ReDim total(1 To 1, 1 To 2) As Variant
total(1, 1) = WorksheetFunction.Sum(busca_veiculos)
total(1, 2) = WorksheetFunction.Sum(busca_feridos)
Range("AK1").Value = "total_veiculos"
Range("AL1").Value = "total_feridoss"
Range("AK2:AL2").Value = total
End Sub
Bom dia, Israel
Obrigado pelas excelentes aulas.
Queria perguntar,
Como contar linhas em um aquivo csv a partir de outro arquivo?
Back when I used to use soft soft when I knew it kind of well I used the soft roll to make softs I thought it was just more effective
Vídeo sensacional. Como eu faria para pegar apenas os valores da primeira linha com as 31 colunas?
Boa aula Israel! Mas eu tenho uma dúvida. Seria possível fazer a mesma coisa com uma listview? Se sim, você poderia fazer um vídeo mostrando o código com esse mesmo arquivo? Obrigado!
Thank you! Here's a request from ! Can you please make a tutorial on how to record your actual tutorial and input your own soft
Olá, nao entendi sua questão
7:30 matriz
Bom dia, por que na primeira sub vc setou base e na segunda aub não?
Se fosse usar a função IF Comparando duas células que estão em colunas diferentes? Seria essa variável mês representando uma coluna e outra Variável tbm representando a outra coluna ?
Exato
Vai ter mais aulas de webscript
VBA Academy vc tem o Curso de VBA com Banco Acess ou outro Banco sendo Controle de Estoque?
Em nosso curso temos alguns projetos com banco em access, mas nenhum deles é um controle de estoque, no entanto todos eles te dão base suficiente de conhecimento para criar o seu próprio controle de estoque
Faz aula no curso sobre pagamento pix
Quando tento usar o mesmo exemplo em minha planilha já da estouro na variant base. E minha planilha tem menos linhas do que a planilha do exemplo.
Olá, precisamos ver o seu código para entender o motivo do erro
Valeu o esforço, mas dá pra resolver isso em 1 ou 2 linhas, e ser muito mais rápido que isso. De qualquer forma parabéns pelo esforço.
Me mostra com resolver isso em 1 ou 2 linhas, fiquei curioso
@@DATA7Academy O princípio é o mesmo, usando as boas práticas de uso do Excel, procurar sempre usar a memória que é mais rápido, como você utilizou, mas a diferença é fazer esse trabalho sem uso de loop e sim rodar isso em bloco, desta forma será instantâneo. #FICAADICA
@@carlosfuno8144 entendi, mas a proposta do vídeo nao era essa e sim fazer uma comparação entre preencher direto na célula e usar a memória, e para que a comparação seja justa eu usei o loop em ambos os casos.
Que absurdo
Não seria mais justo a comparação dos dois códigos fazendo "Application.ScreenUpdating = False" no caso 1 ?
Para cada valor lançado no caso 1 a tela atualiza e o custo de tempo é muito impactante. só não testo agora pois são 03:00h hauhauahsue
Para esse caso específico o screenupdating não é relevante
Mas ajuda mto também