Notifications
Clear all

Gerar código na sequencia dos números

7 Posts
3 Usuários
0 Reactions
1,652 Visualizações
(@isidro2016)
Posts: 95
Trusted Member
Topic starter
 

Bom dia,

Irmãos, espero que todos estejam bem, apesar de estar um bom tempo afastado do site, sempre que preciso eu busco nele a informação que preciso.

Preciso por favor gerar um código na coluna"A", aparecendo o primeiro numero que está pulando ( 2) e depois gerasse normalmente ( 5 ) .

Objetivo é aproveitar os números pulados.
Tentei mandar a planilha, diminui, compactei, mesmo assim ultrapassou o limite de 50kb.

Segue dados onde é gravado:
A B
CÓD NOME
1 ALAN
3 ROSE
4 MARCO

Segue código que estou usando, no caso ele gera o número "5":

Private Sub Botão_Novo_Click()
linha = 2
Do Until Sheet2.Range("a" & linha).Value = ""
linha = linha + 1
Loop
caixa_Cód = Sheet2.Range("a" & linha - 1).Value + 1
Botão_Novo.Enabled = True

Paz e Bem.
Nilson

 
Postado : 13/04/2018 9:12 am
(@klarc28)
Posts: 971
Prominent Member
 

Anexo

 
Postado : 13/04/2018 9:35 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Veja se é isso o que deseja...

Sub inserir_codigo()
Dim ul, x As Long
ul = Plan1.Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To ul
Plan1.Range("A" & i).Select
x = Application.WorksheetFunction.VLookup(ActiveCell.Row, Range("A:A"), 1, 0)
On Error GoTo erro
If ActiveCell.Row <> x Then
Plan1.Range("A" & ul + 1).Value = x
End If
Next i
Exit Sub
erro:
Plan1.Range("A" & ul + 1).Value = ActiveCell.Row
End Sub

Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 13/04/2018 11:51 am
(@isidro2016)
Posts: 95
Trusted Member
Topic starter
 

Bom dia,

Funciona no arquivo enviado.
Quando jogo no meu formulário gera erro.
Estou trabalhando para resolver.

Paz e bem.

 
Postado : 20/04/2018 3:17 am
(@isidro2016)
Posts: 95
Trusted Member
Topic starter
 

Klarc28,

Tubo bem,

Tentei adaptar o seu código no meu formulário, mas está dando um erro na linha:
While Plan1.Range("A" & linha).Value <> "" And achou = False

Não estou conseguindo enviar o arquivo, está acusando acima de 50KB e, mesmo compactando.
Poderia me ajudar, o ideal que vc visse a planilha, pode me ajudar.

Paz e Bem.

 
Postado : 20/04/2018 5:52 am
(@klarc28)
Posts: 971
Prominent Member
 
While sheets("NomeDaSuaPlanilha").Range("A" & linha).Value <> "" And achou = False

Substitua NomeDaSuaPlanilha pelo nome da sua planilha.

ou

While sheets(1).Range("A" & linha).Value <> "" And achou = False

Substitua o número 1 pelo número da sua planilha.

ou

While Planilha1.Range("A" & linha).Value <> "" And achou = False

Substitua o número 1 pelo número da sua planilha.

Enfim, vá modificando e testando, de acordo com o nome ou número da planilha desejada.

 
Postado : 22/04/2018 4:42 pm
(@isidro2016)
Posts: 95
Trusted Member
Topic starter
 

Bom dia.
klarc28,

Esse erro foi corrigido, obrigado.

Porém está gravando assim:

1 A B
2 CÓD NOME
3 1 ALAN
4 1
5 3 ROSE
6 4 MARCO
7 DERAM

Gravação correta:

1 A B
2 CÓD NOME
3 1 ALAN
4 2 DERAM (essa linha seria incluída)
5 3 ROSE
6 4 MARCO

Segue código que estou usando:

Private Sub Botão_Novo_Click()
Dim cod As Long
Dim linha As Long
linha = 1
Dim achou As Boolean
achou = False
While Sheets("CADASTRO").Range("A" & linha).Value <> "" And achou = False

If Sheet2.Range("A" & linha).Value <> linha Then

cod = linha
achou = True
End If
linha = linha + 1

Wend

linha = 1
While Sheet2.Range("A" & linha).Value <> ""

linha = linha + 1

Wend
If achou = True Then
Sheet2.Range("A" & linha).Value = cod
Else
Sheet2.Range("A" & linha).Value = Sheet2.Range("A" & linha - 1).Value + 1

End If

Range("A1:B5").Select
ActiveWorkbook.Worksheets("CADASTRO").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CADASTRO").Sort.SortFields.Add Key:=Range("A2:A5") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CADASTRO").Sort
.SetRange Range("A1:B5")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Botão_Novo.Enabled = True

caixa_nome.SetFocus

End Sub

Private Sub Botão_Gravar_Click()

Dim lin As Integer
lin = 2
Do Until Sheet2.Range("A" & lin).Value = ""
If Sheet2.Range("A" & lin).Text = caixa_Cód.Value Then
Exit Do
End If
lin = lin + 1
Loop

Sheet2.Range("A" & lin).Value = caixa_Cód.Value
Sheet2.Range("B" & lin).Value = caixa_nome.Value

caixa_Cód = ""
caixa_nome = ""

caixa_Cód.SetFocus

End Sub

Paz e bem.
Isidro

 
Postado : 23/04/2018 3:46 am