[VBA] O poder das matrizes - Deixe seu código mais rápido e performático

Поделиться
HTML-код
  • Опубликовано: 2 ноя 2024

Комментарии • 52

  • @DATA7Academy
    @DATA7Academy  Год назад

    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

  • @andersonmartins2166
    @andersonmartins2166 4 месяца назад +1

    Show. Até o primeiro modo que tu usou já ajudará muito em minhas extensas planilhas. Vlw. Sucesso, fera!

  • @adrianot6129
    @adrianot6129 17 дней назад

    Cara, vc é fera demaisss!!! Aprendo muito contigo!! Puro talento!!!

  • @eliascezario4147
    @eliascezario4147 Месяц назад

    O muito top essa sacada....aplicarem em todos meus códigos.....fiquei impressionado com o ganho de eficiência

  • @rubensn5945
    @rubensn5945 2 месяца назад

    Muito bom. Ajudou.
    Obrigado.

  • @andrealexandrep.carlos3565
    @andrealexandrep.carlos3565 2 года назад +5

    Extremamente performático em qualquer utilidade. E a programação em si toma até menos tempo também e é mais enxuta. Sensacional, VBA Academy 👏👏👏👏👏

  • @joseph032531
    @joseph032531 Год назад +1

    Aula sensacional! Didática nota 1000! Muito obrigado!

  • @carloscosta4713
    @carloscosta4713 Год назад +1

    Excelente trabalho!!!!!!!!!!!

  • @pedromedeiros1551
    @pedromedeiros1551 Год назад

    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

  • @lucianorm3990
    @lucianorm3990 Год назад

    Luciano de Presidente Prudente. Obrigado por compartilhar conhecimentos. Sou viciado em Excel, com suas aulas fiquei pior. Muito obrigado mesmo.

  • @paulopms1
    @paulopms1 2 года назад +1

    VBA Academy diferenciado....aborda matrizes e arrays Parabéns !!

  • @eliterony
    @eliterony 2 года назад +1

    excelente

  • @brunodesouzadias3677
    @brunodesouzadias3677 2 года назад +1

    Ansioso, aguardando a continuacao de uso de matriz para procura de valores

  • @RaphaelGuimaraes2011
    @RaphaelGuimaraes2011 2 года назад +1

    Muito bom! Obrigado por compartilhar! Faça maus exemplos mostrando o uso de matrizes. Abraços.

  • @gersonchaves5860
    @gersonchaves5860 2 года назад

    Simplesmente FANTÁSTICO.
    FENOMENAL ... Ainda vou fazer o seu curso ..
    Parabéns

  • @farmarcos
    @farmarcos 2 года назад +1

    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

  • @andrelussac6547
    @andrelussac6547 2 года назад

    muito maneiro, curto muito esse canal, são sempre dicas muito mais práticas e menos linhas de programação.

  • @rafaelflores4183
    @rafaelflores4183 2 года назад +2

    Bicho, que aulão foda! Parabéns pela aula!!

  • @renatoklutchcouski650
    @renatoklutchcouski650 Год назад

    boa noite, vcs são os melhores

  • @cesarroberto4971
    @cesarroberto4971 2 года назад

    Israel como sempre sensacional. Prepara mais aulas como está sobre matriz, fazer comparativos na memória, e o que eu mais sinto falta.

  • @caiquefontes2435
    @caiquefontes2435 2 года назад +3

    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?

    • @caiquefontes2435
      @caiquefontes2435 2 года назад +1

      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

  • @samuelarildo2387
    @samuelarildo2387 2 года назад

    Obrigado pelo conteúdo não me arrependo de ter comprado o curso

  • @alissongomes8184
    @alissongomes8184 2 года назад

    Show! Parabéns!

  • @odairback7991
    @odairback7991 2 года назад

    Excelente dica

  • @jeferson-jeffexcel5560
    @jeferson-jeffexcel5560 2 года назад

    Massa, gosto muito de usar as Matrizes / Arrays

  • @caiquefontes2435
    @caiquefontes2435 2 года назад +2

    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

  • @marcosdemelo1956
    @marcosdemelo1956 2 года назад

    Bom dia, Israel
    Obrigado pelas excelentes aulas.
    Queria perguntar,
    Como contar linhas em um aquivo csv a partir de outro arquivo?

  • @compilacaodememesnovos8353
    @compilacaodememesnovos8353 2 года назад

    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?

  • @kaka080365
    @kaka080365 2 года назад

    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!

  • @andrecayo2288
    @andrecayo2288 2 года назад

    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

  • @AndarilhoLFS
    @AndarilhoLFS 2 месяца назад

    7:30 matriz

  • @lincolnikeda891
    @lincolnikeda891 Год назад

    Bom dia, por que na primeira sub vc setou base e na segunda aub não?

  • @ronaldolopes165
    @ronaldolopes165 2 года назад

    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 ?

  • @samuelarildo2387
    @samuelarildo2387 2 года назад

    Vai ter mais aulas de webscript

  • @adairtecnicoeminformaticae8364
    @adairtecnicoeminformaticae8364 2 года назад

    VBA Academy vc tem o Curso de VBA com Banco Acess ou outro Banco sendo Controle de Estoque?

    • @DATA7Academy
      @DATA7Academy  2 года назад

      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

  • @samuelarildo2387
    @samuelarildo2387 2 года назад

    Faz aula no curso sobre pagamento pix

  • @brunodesouzadias3677
    @brunodesouzadias3677 2 года назад +1

    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.

    • @DATA7Academy
      @DATA7Academy  2 года назад +1

      Olá, precisamos ver o seu código para entender o motivo do erro

  • @carlosfuno8144
    @carlosfuno8144 Год назад

    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.

    • @DATA7Academy
      @DATA7Academy  Год назад

      Me mostra com resolver isso em 1 ou 2 linhas, fiquei curioso

    • @carlosfuno8144
      @carlosfuno8144 Год назад

      @@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

    • @DATA7Academy
      @DATA7Academy  Год назад +1

      @@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.

  • @ProgramadorEstoico
    @ProgramadorEstoico 8 месяцев назад

    Que absurdo

  • @luizhz
    @luizhz 2 года назад

    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

    • @DATA7Academy
      @DATA7Academy  2 года назад

      Para esse caso específico o screenupdating não é relevante

    • @DATA7Academy
      @DATA7Academy  2 года назад +1

      Mas ajuda mto também