Gerar ID Automático Excel VBA sem LOOP

Поділитися
Вставка
  • Опубліковано 15 жов 2024
  • Como gerar ID Automaticamente com Excel VBA sem precisar de Loop para percorrer as células da planilha e também sem precisar localizar a última célula com dados. Utilizando função do Excel conseguimos gerar o próximo ID de forma automática pelo vba. Retornando o maior número de um intervalo e somando mais um para ter o próximo identificador único de cada linha da planilha Excel, chamado de id.
    ✅Site SGP: Venda de Coleção de Planilhas Excel VBA Prontas:
    www.planilhasc...
    ==========================================

КОМЕНТАРІ • 57

  • @dejalbasbarbosacordeiro5071
    @dejalbasbarbosacordeiro5071 3 місяці тому +1

    Muito grato mestre, esta função MAX, resolveu meu problema com código automático em um pequeno sistema de cadastro VBA/POO, OBRIGADO!

    • @CanalSGP
      @CanalSGP  3 місяці тому

      Que bom que ajudou

  • @_cheba892
    @_cheba892 Рік тому +1

    Parabéns pelo conteúdo, tem me ajudado muito. Deus te abençoes muito.

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

      Obrigado, que bom que ajudou.

  • @wilsonlopesjunior1043
    @wilsonlopesjunior1043 3 роки тому +2

    Show de bola. Obrigado por compartilhar o seu conhecimento.

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

      Boa noite, obrigado.

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

    Obrigado professor!!!
    Excelente tutorial.
    Agiliza o sistema.

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

      Boa noite, obrigado.

  • @fabriciopereira9641
    @fabriciopereira9641 7 місяців тому

    muito top! eu conseguiria limitar esse contar para que ele se repetisse. tipo um loop de 1 a 100?

    • @CanalSGP
      @CanalSGP  7 місяців тому

      Boa tarde, obrigado, de loop tem o vídeo no link a seguir. ua-cam.com/video/CaBMdrIWFp4/v-deo.html

    • @fabriciopereira9641
      @fabriciopereira9641 7 місяців тому

      @@CanalSGP obrigado por responder tentei um código semelhante mas ele não entra no contador e aparece a mensgem de erro
      Sub macro_Loop_until()
      On Error GoTo Erro
      Dim linha As Double
      Dim contador As Double
      contador = 1
      linha = 1
      With dados
      Do
      If .Cells(linha, 3).Value "" Then
      .Cells(linha, 2).Value = contador
      End If
      contador = contador + 1
      linha = linha + 1
      Loop Until .Cells(linha, 3).Value = ""
      End With
      Exit Sub
      Erro:
      MsgBox "Erro!", vbCritical, "ERRO"
      End Sub
      tem ideia de onde poso estar errando. Lembrando que pretendo fazer um contador de 1 a 100 tendo como condição a coluna seguinte ser maior do que zero.
      desde já agradeço pela dica

    • @CanalSGP
      @CanalSGP  7 місяців тому +1

      Boa tarde, não testei, mas vai ser mais ou menos igual ao código ajustado abaixo.
      Sub macro_Loop_until()
      On Error GoTo Erro
      Dim linha As Double
      Dim contador As Double
      contador = 1
      linha = 1
      With dados
      Do
      If .Cells(linha, 3).Value "" Then
      .Cells(linha, 2).Value = contador
      End If
      contador = contador + 1
      linha = linha + 1
      Loop Until Contador

    • @fabriciopereira9641
      @fabriciopereira9641 7 місяців тому

      @@CanalSGPBoa noite! obrigado !
      testei aqui e contou somente a primeira linha da celula 2 , ou seja, não incrementou a contagem até 100. Mas obrigado caso possa me dar uma sugestão do que melhor fazer ficarei grato. Enquanto isso vou tentando e se tiver êxito te falo.

    • @CanalSGP
      @CanalSGP  7 місяців тому

      Bom dia, se na coluna três for vazio não vai contar.
      If .Cells(linha, 3).Value "" Then

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

    Oi professor. Gostaria de saber se no canal tem algum vídeo ensinando algum código que ao excluir algum registro, os IDs reorganiza automaticamente. Porque quando deletamos algum registro, os IDs ficam todos bagunçados. Desde já agradeço e muito obrigado.

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

      Bom dia, não tenho vídeo sobre este tema. Mas talvez um loop pela coluna colocando novamente todos os ids.

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

      O ideal é apagar o ID definitivamente, ou criar um campo que sinalize como deletado, ID´s em banco de dados não podem ser reutilizados.

  • @kelvinMovies
    @kelvinMovies 2 роки тому

    Tenho uma outra dúvida. Só pra eu ver se entendi. A primeira linha de comando do seu código é para informar que está sendo iniciada na linha 2?

    • @CanalSGP
      @CanalSGP  2 роки тому

      Bom dia, não exatamente, o dois se refere a uma célula vazia acima do cabeçalho + 1 para cair na próxima linha vazia. Mas para simplificar, se não tem dados acima do cabeçalho, basta informar o número da linha do cabeçalho.

  • @mr.oliveira
    @mr.oliveira 3 роки тому +1

    É like sem pensar! Grato.

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

      Obrigado pelo like

  • @waguardia
    @waguardia 2 роки тому +1

    muito bom sempre quis fazer dessa forma

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

    Muito obrigado! O senhor sabe me informar onde eu posso contratar uma pessoa para fazer um formulário para mim?

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

      Bom dia, no grupo no Facebook tem um pessoal que faz, segue link. facebook.com/groups/ExcelSolucoesVBA

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

    Olá gostaria de saber se é possível Concatenar um "." ponto ao numerador automático ?

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

      Boa tarde, se colocar ponto não vai funcionar a geração de id com esta função, porque número com ponto pode ser entendido pelo Excel como texto.

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

      @@CanalSGP Obrigado pelo retorno! existe uma função que seja possível ?
      'Private Sub CommandButton1_Click()
      'Me.TextBox2 = Text
      'Dim ID As Integer
      'Planilha2.Select
      'Planilha2.Range("b3").Select
      'Planilha2.Range("b3") = "0."
      'Range("B25").End(xlUp).Offset(1, 0).Select
      'ID = Range("B25").End(xlUp).Offset(0, 0).Value
      'Me.TextBox2 = ID + 1
      'If TextBox2 = "" Then
      'TextBox2 = WorksheetFunction.Max(Planilha2.Range("B1:B100")) + 1
      'TextBox2 = TextBox2 & "."
      'End If
      nesta vem o ponto mas não consigo concatenar o Textebox1 com o textbox2 de maneira que junte ( Exemplo (1.xxx xxx) é uma necessidade específica.

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

      Bom dia, acredito que vai precisar de uma coluna que tenha somente o número do código, mesmo que seja oculta. Desta forma acredito que possa fazer, capturando o maior valor da coluna numérica e concatenando as demais informações em outra coluna.

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

      @@CanalSGP Muito obrigado ! funcionou com a concatenação obrigado mesmo pela ideia.

  • @kelvinMovies
    @kelvinMovies 2 роки тому

    Professor. Tenho esta seguinte situação. Tenho duas abas. Uma lanço todas as compras gerais que não são parceladas em uma aba, vamos chamar de Plan1 e na Plan2 eu lanço as compras que fiz parceladas. Quando eu efetuo o pagamento, estas compras do Plan que estão pagas, devem ser copiadas para Plan1. Porém, cada uma destas abas tem id, correto. Ou seja, na Plan1 vamos supor que tenha 10 registros e a hora que eu clicar no botão lá na Plan2 para copiar estas faturas que estão pagas lá para Plan1, ela vai deletar estas linhas da Plan2, porém, ela vai ter que alterar o id, pois pode ser que já tenha a mesma id na Plan1. Agora vem a pergunta. Como faço para continuar dos ids já existentes da Plan1?

    • @CanalSGP
      @CanalSGP  2 роки тому

      Boa noite, talvez seja mais fácil copiar os dados normalmente e fazer um loop percorrendo a coluna ID e reorganizando em sequência novamente.

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

    Em 4:12, se eu criar ali no userfom um campo "Id" com uma txt box, como eu faço pra fazer referencia desse campo com o ID da planilha? Pra automaticamente o próximo ID do próximo cadastro também aparecer no userform

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

      Boa tarde, o código vai ser o mesmo, mas colocado no evento exit ou change de outro objeto, pode ser textbox, combobox.

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

      @@CanalSGP pode gravar um video ou reels ensinando como por gentileza?

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

      Bom dia, vai ser procedimento semelhante ao do vídeo a seguir, mesmo evento. ua-cam.com/video/mvmEGmeDdgs/v-deo.html

  • @leotristao3865
    @leotristao3865 Рік тому +1

    Não funcionou. retornou "Erro Execução 424 Objeto é obrigatório" logo em "Linha = WorksheetFunction.CountA(teste.Range("A:A")) + 2"

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

      Tentei excluir a primeira linha de comando, dado que inicio em a2 mas tbm não funcionou, dando erro em "ID = WorksheetFunction.Max(teste.Range("A:A")) + 1"

    • @CanalSGP
      @CanalSGP  Рік тому +1

      Bom dia, pela mensagem se trata de erro de referência a guia da planilha, o nome interno do vba da guia não deve ser teste.

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

      @@CanalSGP Era isso mesmo. Muito obrigado pelo esclarecimento!

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

      De nada.

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

    Boa tarde, fiz o processo, porem o codigo nao esta pulando a linha e nao esta exibindo o numero do ID na coluna A, conforme esta a minha tabela! Poderia me ajudar?

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

      Boa tarde, teste um exemplo igual ao do vídeo, depois que funcionar tenta adaptar.

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

      @@CanalSGP irei tentar! obrigado pelo Retorno! 🙏🏾

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

      De nada.

  • @denilsonsilva3366
    @denilsonsilva3366 2 роки тому +1

    Muito bom 👏👏👏

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

    Show!!!

  • @kakasantos8545
    @kakasantos8545 2 роки тому

    como clicar em uma celula vazia e aparecer o numero pré escolhido?

    • @CanalSGP
      @CanalSGP  2 роки тому

      Bom dia, não fiz algo assim ainda.

  • @jorderdabney3194
    @jorderdabney3194 2 роки тому

    no meu caso deu erro 1004 vba erro de definição de aplicativo ou definição de objeto (linha=0)

    • @CanalSGP
      @CanalSGP  2 роки тому +1

      Boa tarde, acredito que variável linha não pode ser igual a zero, porque não tem linha zero no Excel, começa a partir da linha 1.

    • @jorderdabney3194
      @jorderdabney3194 2 роки тому +1

      @@CanalSGP obrigado 🤝

    • @CanalSGP
      @CanalSGP  2 роки тому

      De nada

  • @edhermarco1
    @edhermarco1 2 роки тому

    ❤❤❤