Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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

@Basole Obrigado pela resposta, mas não entendi onde devo colocar esse código.

Até hoje só usei linhas de códigos no excel em macros.

Grato

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






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

×