Como deixar Macro mais RÁPIDA e Ganhar 99% em Performance

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

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

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

    Ver o resultado inicial para o resultado final foi incrível!

  • @ExcelOnlineBrasil
    @ExcelOnlineBrasil  4 года назад +10

    Não é preciso sofrimento para melhorar a performance de sua planilha, para deixar Macro mais rápida vou te ensinar 4 simples passos muuuito eficientes.😉

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

    Achei que o 99% do título era só pra chamar a atenção. Num é que diminuiu esse tanto mesmo?! Muito massa.

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

    Caramba massa demais, eu pensando que sabia alguma coisa, passando é vergonha kk Top, sim bora aprender elevar o nível.

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

    Eu não amei, eu adorei. Muito obrigado pelo conhecimento!

  • @r.mendesdemendonca1747
    @r.mendesdemendonca1747 Год назад

    Show, professor, obrigado pela dica.

  • @luciamariaandrade956
    @luciamariaandrade956 4 месяца назад

    Muito boa explicação , eu só não soube fazer a eliminações do select no meu código. ainda sou iniciante

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

    Formidável!

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

    por favor, estou com erro nessa linha Cells(Rows.Count, 13).End(xIUp).Offset(1, 0) = tempoFIM - tempoINI
    e não aprece o calculo de tempo.

  • @ViniciusSilva-7
    @ViniciusSilva-7 4 года назад +5

    Sensacional.

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

    Que vídeo maravilhosoooo!!!! Obrigadaaaaa

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

    Muito bom, não sabia que retirar o ".select" acelera a execução do código. Parabéns pela excelente didática. Estou inscrito.🎯

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

    sensacional!!!, PARABÉNS POR COMPARTILHAR CONHECIMENTO

  • @victormatos6853
    @victormatos6853 3 года назад +5

    A do cálculo manual eu tinha descoberto sozinho, mas o restante achei sensacional, principalmente a última dica

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  3 года назад

      Feliz em ter ajudado Victor, desempenho de macros é sempre algo para se considerar no desenvolvimento de um recurso. Abs.

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

    Sensacional!
    Amigo, eu fiz um sistema Frente de Caixa e Gestor de Estoque para minha mercearia e depois de 4 mil vendas registradas o delay pra salvar uma nova venda já estava em 33s, isso quando computador estava dedicado somente ao sistema sem mais nada aberto... O screen updating já estava ativo, mas a diferença maior foi desativar os cálculos e os eventos... De 33s passou para apenas 6s e isso pode melhorar mais ainda eliminando os selects como bem disse em sua última dica, porém isso no momento não vou fazer porque preciso avaliar bem o código para não deixar nada inoperante. Agradeço imensamente a sua dica gratuita e sucesso ao seu canal!

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

    Descobrir esse canal hoje de achei muito top demais

  • @isacvs
    @isacvs 3 года назад +1

    Essa foi show hem.

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

    Excelente!!

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

    Vídeo muito bom

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

    Show de Velocidade!🚀

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

    MUITO TOP! Tenho uma planilha que em um PC ela roda meu código rapidinho, mas quando abrir em outro pc estava demorando uns 20seg pra gravar os dados da tela para a planilha, ao colocar esses códigos tá executando em 3seg. Show de bola. O link desse vídeo está salvo no código rsrsrs. valeu!

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

    Sensacional.
    Parabéns e obrigado pela dica.

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

    Minha nossa, vc é demais, parabéns e muito obrigado

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

    Irmão, BIZARRO o tempo que tu me salvou! MUITO obrigado! Tmj!

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

    Ótimo para explicar. Bom professor. Sou fascinado por Excel

  • @Electriwalll
    @Electriwalll 3 года назад +1

    Muito show

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

    Excelente

  • @andremattos186
    @andremattos186 4 месяца назад

    Sensacional!!! 👏👏

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

    Excelentes dicas, estou começando a aprender sobre VBA e essas suas dicas são top! Vou aplicá-las em um planilha que já estava me dando esse problema de tempo de execução e te dou um retorno!

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

      Obrigado pelo feedback Suliano. Feliz em ajudar.
      Um abs😉

  •  6 месяцев назад

    Muito bom, valeu pela dica!

  • @HugoCesar29
    @HugoCesar29 3 года назад +3

    Que didática incrível! Fiquei muito surpreso com a ultima dica!

  • @ewertonjuniorbatistavieira6506
    @ewertonjuniorbatistavieira6506 3 года назад +1

    Sensacional! Adorei as dicas!!

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

    Obrigado! Ganhou mais um inscrito!

  • @wellingtonribeiro587
    @wellingtonribeiro587 3 года назад

    Atualização de tela e Eventos eu já tirava, mas o calculo automático vai mudar muito minha planilha que é cheeeeia de fórmulas kkkk
    Muito obrigado. Ganhou um inscrito

  • @Vagnerkira
    @Vagnerkira 9 месяцев назад

    É possível fazer o Excel abrir um software e dentro dele abrir as telas que eu preciso usar no dia dia ?

  • @Marcelo-qu5qi
    @Marcelo-qu5qi 3 года назад +2

    Incrível

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

    Sensacional !!!!... Ótima dica, valeu mesmo!!!!!👍👍👍👍

  • @joseadrianosoaressantos6611
    @joseadrianosoaressantos6611 3 года назад

    Ótima explicação. Parabéns!!. Você meu problema, porque minha planilha estava muito lenta por conta de macros. Obrigado!!!

  • @PedroRodrigues-mg3fv
    @PedroRodrigues-mg3fv Год назад

    cara, puta merda queria vc na minha vida QUE AULA rápida mas PRODUTIVA PRA KRL. Parece até que vc usou os truques pra fazer o vídeo tmb kkkk

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

    Perfeito

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

    Cara vc é um mestre. Que didática maravilhosa para explicar. Muito obrigado!

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

    Caramba!!! DICÃO!!! AULÃO!! Muito obrigado! Foi direto ao ponto e explicou muuuuuuito bem!

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

    onde coloco isso em uma planilha já pronta?

  • @nilsonsantos3908
    @nilsonsantos3908 3 года назад

    Professor, embora eu tenha utilizado todos os códigos abaixo para desabilitar a tela e a atualização de eventos durante a execução do código (reativei no final), a tela pisca ao final da execução da macro. Como resolver isso?
    Sub Ordenar_TabelaCartao()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.EnableAnimations = False
    Application.DisplayStatusBar = False
    Application.Calculation = xlCalculationManual
    shtTabelas.Activate

    ActiveSheet.ListObjects("tblCartao").Range.Select
    ActiveSheet.ListObjects("tblCartao").Sort.SortFields. _
    Clear
    ActiveSheet.ListObjects("tblCartao").Sort.SortFields. _
    Add2 Key:=Range("tblCartao[SITUACAO]"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, CustomOrder:="Em andamento,Encerrada", DataOption:= _
    xlSortNormal
    ActiveSheet.ListObjects("tblCartao").Sort.SortFields. _
    Add2 Key:=Range("tblCartao[INICIO DO PAGAMENTO]"), SortOn:=xlSortOnValues, _
    Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.ListObjects("tblCartao").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With

    Call Renumerar_TabelaCartao

    ActiveSheet.ListObjects("tblCartao").HeaderRowRange(1).Select


    shtpainel.Activate

    Range("Ano").Select

    Application.DisplayStatusBar = True
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableAnimations = True
    Application.ScreenUpdating = True

    End Sub
    Sub Renumerar_TabelaCartao()
    Dim linha As Integer
    Dim conte As Integer
    Dim vazio As Integer
    linha = 5
    conte = 1
    shtTabelas.Activate
    Cells(5, 25).Activate
    Do Until shtTabelas.Cells(linha, "Y") = ""
    If ActiveCell "" Then
    shtTabelas.Cells(linha, "X") = conte
    linha = linha + 1
    conte = conte + 1
    End If
    ActiveCell.Offset(1, 0).Activate
    Loop
    End Sub

  •  Год назад

    Muito boa a aula, professor! Gostaria de tirar uma dúvida se possível, teria como em quanto a macro rodar habilitar o cálculo manual apenas de uma aba específica da planilha, caso eu tenha várias abas contendo planilhas e uma referenciando a outra? Um forte abraço.

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

    Sensacional
    Like 500
    Poderia nos ensinar um pouco sobre vetor e matriz,
    Mas precisamente como contar valores dentro de um vetor com Countif
    😁

  • @marcelocabral5096
    @marcelocabral5096 3 года назад

    Excelente video, ganhou mais um inscrito. Obrigado por compartilhar seus conhecimentos e dicas

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  3 года назад +1

      Feliz em ajudar Marcelo, e parabéns pelo interesse em aprimorar seus conhecimentos.
      Abs

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

    SHOW!

  • @eliezerbatistadeoliveira6303
    @eliezerbatistadeoliveira6303 3 года назад

    Eu criei um banco de dados usando o Userform. Esses procedimentos deixariam o programa rodando mais leve?

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  3 года назад

      Olá Eliezer.
      É muito relativo o tamanho do ganho, pois depende muito do código que está utilizando.
      Caso haja um loop, é mais provável que melhore a velocidade de execução.
      Se houver "seleções" de células ao longo da macro, também pode haver um ganho na remoção dessas seleções.
      Obrigado por acompanhar o canal.👍
      Um abraço.😉

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

    a dica é sensacional porem quando desabilito o calculo automático minhas contas não saem certas

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

    Muito bom!!!
    No trabalho tenho várias planilhas com Macros ... e uma coisa BEM CHATA é que, se incluo uma coluna ou linha, tenho que ir em todas as Macros e mudar as Matrizes!!! ... Alguma solução para isto?? ... Obrigado!!!

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

      Feliz em ajudar.
      Voce pode utilizar um codigo que vai identificar qual a ultima linha preenchida na coluna que especificar, por exemplo :
      Range("a" & Rows.Count).end(xlUp).row
      Abs😉

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

      @@ExcelOnlineBrasil, linha nem é tão grave, já que dou sempre uma boa margem. No caso de coluna parece que achei uma solução. Ao invés de colocar a matriz no código, vou colocar automática numa célula e usar este código:
      Application.Goto Reference:="INDIRECT(R1C9)" . Essa semana vou testar.

  • @JoanesBH
    @JoanesBH 4 года назад

    Muito obrigado! Dicas Sensacionais!!!! Porém eu ainda tenho problemas. Uso o Office 365 e, para formatar, preciso excluir cerca de 200 colunas de forma alternada dentro da planilha de dados (sem fórmula). O Excel demora cerca de 4 minutos para realizar a tarefa. tem alguma dica para este caso?

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  4 года назад

      Olá Joanes, tudo bom?
      Muito grato em ajudar.😉
      Por favor, envia esse arquivo, deixa eu ver se podes melhorar alguma coisa nessas exclusões, uma vez que não há formulas acredito que poderia ser executado de modo mais rápido.
      Quantas linhas estão ocupadas nesta tabela?
      marcusrodello@excelonlinebrasil.com

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

    SHOWWWWWWW!!!!!

  • @r.mendesdemendonca1747
    @r.mendesdemendonca1747 Год назад

    Professor, esto quebrando a cabeça em classificar um combobox (A Z), já vi vários vídeos e não encontrei nada que desse resultado, na verdade um dos vídeos diz que por ter um laço em todos os itens ou linha demora um pouco, acaso tem alguma coisa que possa ajudar?

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

      Onde está a origem deste combobox? Você popula ele via loop?

    • @r.mendesdemendonca1747
      @r.mendesdemendonca1747 Год назад

      @@ExcelOnlineBrasil Sim por um loop
      TotalItens = Controls(Objeto).ListCount - 1
      For I = Inicio To TotalItens
      For X = 1 To TotalItens
      If Controls(Objeto).List(I) > Controls(Objeto).List(X) Then
      Temp = Controls(Objeto).List(X)
      Controls(Objeto).List(X) = Controls(Objeto).List(I)
      Controls(Objeto).List(I) = Temp
      End If
      Next X
      Next I
      Exit Sub
      Só que não funciona.

  • @TheWAGNER3994
    @TheWAGNER3994 3 года назад

    bom dia...
    tem como fazer comparacoes entre duas cel na mesma lin e señdo ambas iguais selecionar a segunda com valor maior na mesma col ?

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  3 года назад

      Olá WO.SANTANNA SANT"ANNA .
      Desculpe, não consegui mentalizar corretamente a situação.
      Você mencionou das células serem ambas iguais, porém depois disse de uma ter valor maior que a outra.
      Pode exemplificar melhor por favor?
      Um abraço.👍

    • @TheWAGNER3994
      @TheWAGNER3994 3 года назад

      @@ExcelOnlineBrasil
      boa noite...
      a minha ideia e copiar dados de uma lista criando uma nova .sem que tenha repeticoes na mesma linha... comparacoes dentro de uma plan

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

    Olá pessoal :) Alguém sabe se macro pode dar bug no Excel? Meu formatar como tabela não funciona mais e nem a Microsoft conseguiu me ajudar, eu compartilho a conta com a minha irmã e o dela está normal. Obrigada.

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

      Olá Aline. Já tentou remover o office, reiniciar a maquina e reinstalar? Ou efetuar a reparação da instalação? Isto pode ajudar.😉
      Nunca vi uma macro causar problemas no excel, mas ja vi macros que por exemplo, desabilitavam a tecla "delete" por algum motivo, mas que depois quando nao era mais necessario desabilitar, o pessoal esquecia de remover o codigo. Aí fica parecendo um problema do excel, mas na verdade ele está apenas seguindo a programação.
      👍

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

      @@ExcelOnlineBrasil Olá,obrigada, tentei a reparação e não deu certo, mas vou tentar tirar o Office e instalar novamente, ouvi que também poderia ser porque eu instalei o Windows 11, vou tentar de tudo aqui rs. Muito obrigada pelo retorno 🙂.

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

    Yeees!!!

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

    Tinha uma base que demorava 2 minutos e meio pra rodar.
    Agora está rodando em menos de 1 segundo kkkk

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

      Excelente notícia Fernando. Obrigado pelo feedback. O céu é o limite no VBA.😉
      Um abraço

  • @weslanalves4690
    @weslanalves4690 3 года назад

    coloquei os códigos e deu tela azul sksksksk que odiooo

    • @ExcelOnlineBrasil
      @ExcelOnlineBrasil  3 года назад

      Poxa vida Weslan.
      Rapaz, uma tela azul na hora de testar um código é desanimador mesmo.
      Mas é uma oportunidade para tentar novamente, e gerar mais aprendizado.
      Continue com essa garra.
      Abraço👍

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

    Public Sub ControleGMA_BarraProgresso_FrmProgresso()
    Dim Total As Long
    Dim x As Long
    Dim Largura As Long
    Dim Percentual As Double
    Total = 10000
    With UserFormControleMCProgresso
    Largura = .Lbl_Evolucao_FrmControleMCProgresso.Width
    .Show
    End With
    For x = 1 To Total
    Percentual = x / Total
    With UserFormControleMCProgresso
    .Lbl_Evolucao_FrmControleMCProgresso.Width = Percentual * Largura
    .Lbl_Valor_FrmControleMCProgresso.Caption = Round(Percentual * 100, 1) & "%"
    .Repaint ' Forçar a atualização da tela
    DoEvents ' Permitir que a interface seja atualizada
    End With
    Next
    Unload UserFormControleMCProgresso
    End Sub