Ir ao conteúdo
  • Cadastre-se
AdrianoKbcao

Excel - número sequencial fixo

Recommended Posts

Boa tarde.

Tenho uma planilha de controle de pedidos no excel onde eu gostaria que a cada nova linha digitada, fosse gerado automaticamente na coluna A um número sequencial único desse novo pedido.

Fazer isso é muito simples usando fórmulas como A1+1, LIN, MAIOR, etc. O problema é que se eu excluo uma linha (pedido cancelado) ou eu classifico a minha planilha por data ou produto,  os números são alterados. embaralhados, ou dão erro. Eu gostaria que a partir do momento que o número é dado para aquela linha, ele continue fixo aos dados daquela linha, independente do que aconteça. E que como falei anteriormente, seja gerado automaticamente.

É possível?

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AdrianoKbcao use a funcao max para criar o sequencial. Ex.:

 

Function GerarNumAutomatic() As Long
Dim rngId As Range
With ActiveSheet
Set rngId = .Range(.Cells(2, 1), .Cells(.UsedRange.Rows.Count, 1))
GerarNumAutomatic = Application.WorksheetFunction.Max(rngId) + 1
End With
End Function

Sub Teste()
ActiveCell.Value = GerarNumAutomatic
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AdrianoKbcao o codigo que postei é uma função GerarNumAutomatic()  cria uma sequencia numerica somando +1 ao numero maior da coluna "A" . Cole esta funcão em um Standart Módulo.

E a macro abaixo no modulo da sua Respectiva planilha (Aba):

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B1000")) Is Nothing Then ' * ajuste o intervalo se necessario
        Target.Offset(, -1).Value = GerarNumAutomatic
    End If
End Sub

Eu tb. nao entendi em qual intervalo que vai utilizar, pois nao informou.

Mas na sugestao acima, ao digitar algo na coluna "B" a partir da 2ª linha a macro insere uma numeração automatica, na respectiva linha na coluna "A", automaticamente.

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole Entendi um pouco melhor agora. Obrigado.

Então eu fui no vba, inseri um novo módulo e colei o primeiro código que você passou, depois ainda no vba dei 2 clicks no nome da planilha que queria aplicar e inseri o segundo código que você passou e funcionou como você descreveu. Toda vez que insiro um valor na coluna B, ele insere um valor sequencial na coluna A. O problema é que toda vez que altero qualquer informação em qualquer coluna B, ele atualiza o valor na A daquela linha, então bagunça toda a numeração. Eu queria que uma vez que é dado um número em uma linha, ele não inserisse novamente. Talvez se desse pra colocar uma condição que ele só vai inserir o número se a coluna A estiver vazia ou algo do tipo. É possível?

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AdrianoKbcao sem ver sua planilha fica difícil dar uma sugestão melhor. 

 

O que poderia fazer alterar a Coluna "B" do exemplo para uma outra coluna "Z" por exemplo, (tipo auxiliar) que voce coloca-se um "X" para a macro inserir a numeração.

 

Mas fiz algumas alterações conforme sua solicitação.

A macro so ira inserir a numeraçao se a respec. linha da coluna "A" estiver vazia.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Lr As Long

    If Target.Count > 1 Then Exit Sub
    Lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

    If Not Intersect(Target, Range("B2:B" & Lr)) Is Nothing Then  ' * ajuste a coluna desejada
       
     If Target.Offset(, -1).Value = "" Then Target.Offset(, -1).Value = GerarNumAutomatic
    
    End If

End Sub

  

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole Valeu mais uma vez. Agora parece que ficou certinho como queria, obrigado.

Único detalhe que percebi agora é que para adicionar nova linha, fiz um macro que abre um formulário, e quando o usuário digita no formulário a informação da coluna B, o número não é gerado na coluna A, só se ele reinserir a informação. Consegue corrigir isso?

Agradeço novamente pela ajuda.

Planilha anexa.

Controle de Pedidos de Venda.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×