#126

Поділитися
Вставка
  • Опубліковано 6 лис 2024

КОМЕНТАРІ • 17

  • @willcotrim4460
    @willcotrim4460 3 роки тому +1

    Sensacional, ganhou mais um inscrito!!!! Parabens!

    • @AlessandroTrovato
      @AlessandroTrovato  3 роки тому

      Seja bem vindo Will! Grato espero que goste e encontre muito material ainda nas mais de 500 aulas de Excel que tenho no canal. Bons estudos!

  • @ProgramadorExcelVBA
    @ProgramadorExcelVBA 7 років тому

    Muito show essa aula prof. Trovato, formidavel como o sr. consegue nos repassar a linguagem VBA de forma facil e descomplicada.
    Grato pelo sr. compartilhar seu conhecimento conosco.
    Att, Gledson

  • @wallacefernandoaraujo3275
    @wallacefernandoaraujo3275 7 років тому +1

    Parece Fácil vendo você criar esse código.......raciocínio bem interessante!! Parabéns pela aula!

    • @AlessandroTrovato
      @AlessandroTrovato  7 років тому

      Grato pela mensagem Wallace! Fico feliz que tenha gostado da aula. Realmente tive que queimar alguns neurônios para montar uma estrutura enxuta. Até a próxima!

  • @AlessandroPaesLeme
    @AlessandroPaesLeme 7 років тому +1

    Prof. Trovato. mas, um show de VBA. Um forte abraco.

  • @gabrielmartins3510
    @gabrielmartins3510 7 років тому

    Vamos trovatar no domingão!! Excelente aula!

  • @marcelosmith9500
    @marcelosmith9500 7 років тому

    Aula show!! Obrigado Mestre Trovato!

  • @looksmart5000
    @looksmart5000 7 років тому

    Excelente Aula Alessandro.
    Para esse método funcionar corretamente, as rotas terão de estar ordenadas.
    Não pode ter por exemplo não pode ter rota 1,2,3,2,4,5,3....

  • @longuinni
    @longuinni 7 років тому

    Muito bom Alessandro! Seus vídeos são excelentes.

  • @emersonreal8010
    @emersonreal8010 7 років тому +1

    Boa tarde Alessandro, primeiramente quero parabenizar pelas ótimas aulas, desenvolvi muita macro VBA no meu trabalho aprendendo com suas aulas. Queria que me tira-se uma dúvida, pois não achei em lugar algum o código onde em uma planilha filtrada, e minha célula ativa está na primeira linha, ou seja o cabeçalho, quero que meu cursor desça a próxima linha visível, utilizando o comando activecell.offset, ele desce para uma célula não visível. A única maneira que conseguimos para resolver esse problema, foi fazendo um do do while, offset.set.
    queria saber se existe uma maneira mais simples. abs.

  • @ricardolourenco5922
    @ricardolourenco5922 Рік тому

    Amigo tudo bem? Poderia me ajudar?
    Quero somar entre um intervalo de datas ou apenas uma data da minha listbox apenas os valores correspondente a Palavra Dinheiro(coluna E) valor(F), ou seja, ele tem que somar apenas os valores correspondente a Dinheiro dentro desta data. Se dentro do intervalo de data escolhido aparece 3 valores que foram pagos em Dinheiro, preciso que ele some estes valores dentro de uma textbox. Eu sei que deve usar a função soma-se, mas não estou conseguindo colocar os critérios, ou também se houver outra forma de fazer isso.
    Minha Listbox exibi os pagamentos lançados durante o dia dos meus clientes. Tenho textbox de pesquisa de datas inicial e final, e ele exibi os clientes, a forma de pagamento, o valor bruto, o valor líquido, seja em Dinheiro, débito, crédito ou PIX. Consegui apenas quando eu defino uma data inicial ele me mostra o total em reais da coluna valor bruto e valor líquido. Mas preciso somar separadamente nesta pesquisa os valor em Dinheiro, débito, crédito e PIX em uma textbox para cada. Ficando assim na tela como um fechamento de caixa. Poderia me ajudar?

  • @Trevhoor_2419
    @Trevhoor_2419 6 років тому

    aula muito boa, mas gostaria que vossa maestria recaptulasse tudo isso, mas ao invés de contar elementos repetidos pós o outro em uma mesma coluna, contasse elementos repetidos aleatoriamente nessa mesma coluna.

  • @Souzaths
    @Souzaths 3 роки тому

    E como fica o código se fosse o contrário? Transformar várias colunas em uma

  • @RamonLenon
    @RamonLenon 7 років тому

    Bom demais, excel é meu Hobby.
    Refiz o código pensando em fazer a mesma coisa com um código diferente e que fizesse mesmo que as rotas não estivessem ordenadas de "A a Z".
    O código fica um pouco problemático quando colamos aqui mas... o que vale é partilhar o conhecimento adquirido.
    Public Sub distribuicao()
    Dim sRota As String ' Variável para armazenar a rota analisada
    Dim i As Integer 'Variável para o for
    Dim j As Integer 'Variável para o for
    Dim lFor As Integer 'Variável para limitar o primeiro for
    Dim lLin As Integer 'Variável que servirá como parâmetro para localização das
    ' células avaliadas
    Dim lCol As Integer 'Variável que servirá como parametro para localização das
    'células avaliadas
    Dim Ativo As Integer 'Variável que servirar para inserir os títulos na planilha PColar
    Dim dCronometro As Date 'Variável que irá armazenar o tempo de execução da macro
    Application.ScreenUpdating = False
    lLin = 1
    lCol = 2
    Ativo = 1
    dCronometro = Now
    '#### Note que para o processo foram utilizados os nomes VBA's das planilhas que
    'são:
    ''Pbase e PColar
    PColar.Range("A1").CurrentRegion.Clear 'Limpa a planilha que irá colar os dados posteriormente
    PBase.Range("A:A").Copy 'Copia a coluna que contém as rotas da planilha PBase
    PColar.Range("A:A").PasteSpecial xlPasteAll 'Cola os valores copiados na planilha PColar
    Application.CutCopyMode = False 'Exclui da area de transferência os valores copiados
    PColar.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes 'Remove da planilha PColar os valores duplicados
    PColar.Range("A1").Select
    lFor = PColar.Cells(PColar.Rows.Count, 1).End(xlUp).Row 'Atribui o número da linha da ultima rota
    For i = 2 To lFor Step 1
    sRota = PColar.Cells(i, 1).Value 'Atribui a variável o valor da primeira rota a ser analisado
    Do While PBase.Cells(lLin, 1) "" 'Irá percorer a coluna 1 da PBase enquanto ela tiver valores
    If PBase.Cells(lLin, 1).Value = sRota Then 'Se o valor percorrido for igual a variavel sRota
    Do While PColar.Cells(i, lCol) "" '
    lCol = lCol + 1 'Esse Do While é para encontrar a proxima coluna a inserir o valor
    If Ativo < lCol Then
    Ativo = lCol 'Este if é para durante o processo encontrar o maior valor armazenado em lCol e inserir em Ativo
    End If
    Loop
    PColar.Cells(i, lCol).Value = PBase.Cells(lLin, 3) 'Insere o valor do ativo correspondente a rota no devido lugar da PColar
    End If
    lCol = 2 'Restaura a variavel lCol
    lLin = lLin + 1
    Loop
    lLin = 1 ' Restaura a váriavel depois que o Do While terminar
    Next
    For j = 2 To Ativo Step 1 'For para lançar o nome de ativo de acordo com a necessidade
    PColar.Cells(1, j).Value = "Ativo_" & j - 1
    Next
    dCronometro = Now - dCronometro 'Váriável que diz o tempo de execução da macro
    Application.ScreenUpdating = True
    'Exibe a mensagem de finalização junto com o tempo de execução da macro
    MsgBox "Processo finalizado, tempo de execução: " & Format(dCronometro, "hh:mm:ss"), vbInformation
    End Sub

  • @MultiVicthor
    @MultiVicthor 5 років тому

    Por uma outra perspectiva. Espero que ajude:
    Application.ScreenUpdating = False
    Dim Matriz As Range
    Dim Plan2_Ulticell As Range
    Dim Codigo As String
    Dim Ultima_Linha As Long
    Dim Linha As Long
    Dim Contador As Integer
    Dim Titulos As Integer
    'Esta parte do código põe todos os titulos na plan2 (Artigo1 ,2, 3 etc)
    Titulos = Application.WorksheetFunction.Max(Plan1.Range("F:F"))
    For t = 1 To Titulos
    Plan2.Range(Cells(1, t + 1).Address).Value = "Artigo " & t
    Next t
    Plan1.Range("A2").Select
    Do While ActiveCell.Value ""
    Set Plan2_Ulticell = Plan2.Range("A1048576").End(xlUp).Offset(1, 0)
    Contador = Application.WorksheetFunction.CountIf(Plan1.Range("A:A"), ActiveCell.Value)
    If Contador > 1 Then
    Linha = ActiveCell.Row
    Plan2_Ulticell.Value = ActiveCell.Value
    For a = 0 To Contador - 1
    Codigo = Cells(Linha, 3).Value
    Plan2_Ulticell.Offset(0, a + 1).Value = Codigo
    Plan2.Range(Cells(1, Contador + 1).Address).Value = "Artigo " & Contador
    Linha = Linha + 1
    Next a
    Plan1.Range(Cells(Linha, 1).Address).Select
    Else
    Plan2_Ulticell.Value = ActiveCell.Value
    Codigo = ActiveCell.Offset(0, 2).Value
    Plan2_Ulticell.Offset(0, 1).Value = Codigo
    ActiveCell.Offset(1, 0).Select
    End If
    Loop
    Application.ScreenUpdating = True

  • @pazfelipe
    @pazfelipe 7 років тому

    Trovato, cria uma escala de folga automática. Algo que só insira o funcionário, o dia que ele vai folgar e em qual domingo ele folga e a planilha gera a folga automaticamente para qualquer outro mês.