Página 1 de 1

NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 16:19
por livip
Boa tarde

Estou melhorando a planilha da loja onde trabalho, e uma dessas planilha ordem de serviço/orçamento. Nela, possui um número de série com o ano nesse estilo: 001196/2020.

Estou tentando fazer uma forma de alterar esse número de série de uma forma mais automática e prática, e pensei em criar um botão de + e um de - para ir alterando o a numeração antes do número. Futuramente pretendo criar um banco de dados para salvar/ registrar todas as ordens de serviço feitas.

Minha lógica para criar isso foi a seguinte:
Código: Selecionar todos
Dim MaisUm As Integer
Dim Ano As Integer

Set MaisUm = Range("D4").Value = Range("D4").Value + 1
Set Ano = "/" & Year(Now())
Mas quando tento rodar, diz que o objeto é obrigatório e aponta para a variável MaisUm. Não consegui desvendar o que possa estar causando isto, e na verdade nem sei se minha lógica está certo, comecei a estudar e mexer com VBA à alguns dias apenas. Se alguém souber como resolver ou tiver uma forma melhor de fazer isso eu agradeceria. Estou deixando um print de como a playlist está no momento para terem uma ideia do que quero fazer.

Imagem

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 18:09
por babdallas
Tente isso. Esta rotina apenas acrescenta 1. Se quiser subtrair, só adaptar.
Código: Selecionar todos
Public Sub SomaUm()
    Dim strCod          As String
    Dim strValor        As String
    
    strCod = Planilha1.Range("D4").Value2
    strValor = VBA.Format(VBA.CLng(VBA.Mid(strCod, _
                                            1, _
                                            VBA.InStr(1, _
                                                    strCod, _
                                                    "/") - 1)) + 1, "000000")
    
    
    Planilha1.Range("D4").Value2 = strValor & "/" & VBA.Year(VBA.Date())
End Sub

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 18:24
por osvaldomp
Código: Selecionar todos
Sub MaisUm()
 [D4] = Format(Left([D4], Len([D4]) - 5) + 1, "000000") & "/" & Year(Date)
End Sub
Código: Selecionar todos
Sub MenosUm()
 [D4] = Format(Left([D4], Len([D4]) - 5) - 1, "000000") & "/" & Year(Date)
End Sub

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 22:07
por livip
osvaldomp escreveu:
Código: Selecionar todos
Sub MaisUm()
 [D4] = Format(Left([D4], Len([D4]) - 5) + 1, "000000") & "/" & Year(Date)
End Sub
Código: Selecionar todos
Sub MenosUm()
 [D4] = Format(Left([D4], Len([D4]) - 5) - 1, "000000") & "/" & Year(Date)
End Sub
Nesse código eu obtive o erro "Type mismatch"

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 22:09
por livip
babdallas escreveu:Tente isso. Esta rotina apenas acrescenta 1. Se quiser subtrair, só adaptar.
Código: Selecionar todos
Public Sub SomaUm()
    Dim strCod          As String
    Dim strValor        As String
    
    strCod = Planilha1.Range("D4").Value2
    strValor = VBA.Format(VBA.CLng(VBA.Mid(strCod, _
                                            1, _
                                            VBA.InStr(1, _
                                                    strCod, _
                                                    "/") - 1)) + 1, "000000")
    
    
    Planilha1.Range("D4").Value2 = strValor & "/" & VBA.Year(VBA.Date())
End Sub
Tentei este código, mas deu erro dizendo "Object required", tentei algumas coisas pra arrumar mas não foi

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 22:20
por osvaldomp
livip escreveu: Nesse código eu obtive o erro "Type mismatch"
D4 deve conter somente 001196/2020

Se ainda assim der erro, então disponibilize o arquivo Excel, imagem não serve.

Re: NUMERO DE SERIE (SOMA + 1 NO VBA)

Enviado: 08 Out 2020 às 23:17
por livip
osvaldomp escreveu:
livip escreveu: Nesse código eu obtive o erro "Type mismatch"
D4 deve conter somente 001196/2020

Se ainda assim der erro, então disponibilize o arquivo Excel, imagem não serve.
Na verdade, tava com um erro de digitação na declaração da célula, já consegui fazer funcionar. Muuuitissimo obrigada.