Ir ao conteúdo
  • Cadastre-se
diego_janjao

Excel RESOLVIDO VBA - Como gravar valor no formato 001/18E

Recommended Posts

Pessoal, bom dia.

 

Tenho o seguinte problema: Tenho uma planilha de Registro de Não Conformidades Externas e elas são sequenciais mas com 3 dígitos seguidos de barra, ano e o carácter "E" que significa Externa, ou seja, seguem assim 001/18E, 002/18E, 003/18E e etc.

 

No VBA eu estou usando o .Offset para pegar o último registro e adicionar +1 & "/18E", o problema é que ele não considera os 0s a esquerda e deixa no formato "8/18E" ao invés de "008/18E".

 

Como posso contornar isso?

 

Private Sub cadastrar_cb_Click()

ActiveSheet.Range("$A$5:$B$350").AutoFilter Field:=1

Range("E4").End(xlDown).Offset(1, 0).Select

ActiveCell.Offset(0, -1) = Format(Left(ActiveCell.Offset(-1, -1), 3) + 1, "000") & "/18E"
ActiveCell = Date 'ok
ActiveCell.Offset(0, 2) = Me.responsaveis_cb.Text
ActiveCell.Offset(0, 3) = Me.cargo_txt
ActiveCell.Offset(0, 4) = Me.analise_txt.Text
ActiveCell.Offset(0, 5) = Me.contato_txt
ActiveCell.Offset(0, 6) = Me.forn_txt
ActiveCell.Offset(0, 7) = Me.cnpj_text
ActiveCell.Offset(0, 8) = Me.telefone_txt
ActiveCell.Offset(0, 9) = Me.email_txt
ActiveCell.Offset(0, 10) = Me.produto_txt
ActiveCell.Offset(0, 11) = Me.lote_txt
ActiveCell.Offset(0, 12) = Me.fabricacao_txt
ActiveCell.Offset(0, 13) = Me.validade_txt
ActiveCell.Offset(0, 14) = Me.codigo_txt
ActiveCell.Offset(0, 15) = Me.qtdNC_txt
ActiveCell.Offset(0, 16) = Me.undmedida_txt
ActiveCell.Offset(0, 17) = Me.recebimento_txt
ActiveCell.Offset(0, 18) = Me.nota_txt
ActiveCell.Offset(0, 19) = Format(Me.qtdrec_txt, "#,##0.00")
ActiveCell.Offset(0, 20) = Me.pedido_txt
ActiveCell.Offset(0, 21) = Format(Me.qtdNC_txt, "#,##0.00")
ActiveCell.Offset(0, 22) = Me.categoria_cb
ActiveCell.Offset(0, 23) = Me.disposicao_cb
ActiveCell.Offset(0, 24) = Me.restricao_txt
ActiveCell.Offset(0, 25) = Me.numero_cb
ActiveCell.Offset(0, 26) = Me.reincidencia_txt
ActiveCell.Offset(0, 27) = Me.perdas_txt.Value

MsgBox "Cadastro efetuado com sucesso!", vbOKOnly, "Registro de Segregados"

End Sub

Eu tentei ActiveCell.Offset(0, -1) = Format(Left(ActiveCell.Offset(-1, -1), 3) + 1, "000") & "/18E" mas não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for usar para um codigo use uma celula auxiliar para gravar o contador.
 

você nao vai conseguir usar essa informação para salvar um novo arquivo por conta da barra.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu preciso que seja no VBA apenas para preencher a célula. E não será necessário salvar o arquivo com este formato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere o inicio do seu codigo

 

 

Sub Contador()

Dim Contador As Long

Contador = Range("Z1").Value + 1 'Altere para uma celula que nao esteja sendo utilizada
Range("z1").Value = Contador
Range("E4").End(xlDown).Offset(1, 0).Select

ActiveCell.Offset(0, -1).Value = Format(Contador, "000") & "/18E"


End Sub

  • Obrigado 1

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

×