É possível pré-preencher uma célula do Excel?

0

Atualmente, estou trabalhando em um arquivo do Excel que coleta produtos, seus EAN e alguns outros dados. Eu queria saber se há recurso dentro do Excel para pré-preencher as células que contêm o EAN com o prefixe assim quando eu clico na célula, eu só tenho que digitar os últimos dígitos do código. Eu sei que posso entrar na prefixe e então eu tenho que mover o cursor para o final quando eu quero os dígitos, mas isso não é realmente conveniente.

Eu pensei em usar o VBA (algo como se houvesse uma mudança de célula com alguns dígitos nessa coluna, ele iria modificá-lo para o EAN real, senão ele iria apagá-lo), mas se já existe algo que pode fazer no Excel, porque não usá-lo.

Estamos supondo que o prefixo é 12345678 e quero inserir apenas a parte dos últimos 5 dígitos. O que eu estou perguntando é se existe uma maneira de preencher as células abaixo, então quando eu clico ou seleciono a célula via tab ou enter, eu só preciso digitar os 5 últimos dígitos, eu não preciso clicar em outra hora no caixa de texto para colocar meu cursor no final.

    
por Sushignago 26.10.2016 / 11:23

2 respostas

2
O método

fixer1234 é o que eu estava procurando, criei um formato personalizado usando a formatação de células.

No meu exemplo, a prefixe era 12345678 e eu procurava 5 dígitos, então o formato era:

"12345678" 00000

"12345678" é o prefixe, entre aspas para considerá-lo como uma string.

00000 é o código de cinco dígitos, usei ##### no começo, mas quando havia alguns zeros à esquerda do código, eles eram não exibido.

Então, se eu quiser exibir 1234567800045 em uma célula, eu coloco apenas 45.

Se você quiser usar o valor total e não o que é exibido por algum motivo, veja a resposta do jc bermu usando o VBA.

Mas tenha cuidado ao executar macros em um arquivo XL, é necessário ativar macros por motivos de segurança e enviar o arquivo via e-mail pode ser considerado lixo eletrônico.

    
por 26.10.2016 / 13:59
0

Esta macro é um bom ponto de partida:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    eancolumn = 1
    Prefix = "1234"
    therow = Target.Row
    thecolumn = Target.Column
    If eancolumn = thecolumn Then
        If Target.Value <> "" Then
            If IsNumeric(Target.Value) Then
                Target = Prefix & Target.Value
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

Abra macros com ALT + F11 , clique duas vezes em Folha1 no lado esquerdo e cole o código no lado direito. Este código é então executado em Sheet 1 toda vez que houver uma mudança. A variável eancolumn determina em qual coluna será adicionado o prefixo.

    
por 26.10.2016 / 12:05