Ir ao conteúdo
  • Cadastre-se

Excel - número sequencial fixo


Posts recomendados

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

Link para o comentário
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
Link para o comentário
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
Link para o comentário
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

Link para o comentário
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
Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...