Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tudo que estiver relacionado ao Excel básico, como somar, calcular média, colocar bordas, etc.
  • Avatar do usuário
  • Avatar do usuário
Por Peter007
#27846
Bom dia a todos , precisava de uma ajuda e não sei bem como fazer
estou a trabalhar numa tabela para a escola e precisava de uma mascara nas celulas tipo 000000/00.0aslsb.
As celulas já tem diversos valores inseridos e os numero e as letras nunca são iguais ou seja às vezes tenho 1234/00.3alsb e quero que ela a formate para 001234/00.3ALSB, sem alterar os dados já inseridos. como posso fazer?
Avatar do usuário
Por Deciog
Avatar
#27847
Peter007, Bom Dia.

Você só deu um exemplo, o correto é postar um modelo com vários exemplos, pois as formulas são especificas, confere se assim ajuda no seu projeto

Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Se você Visitante Também gostou e foi útil pode clique em obrigado

Decio
Você não está autorizado a ver ou baixar esse anexo.
Por Peter007
#27849
obrigado decio, pela ajuda mas não resultou.
a titulo de exemplo o que eu preciso é que por exemplo estes casos abaixo fiquem assim
954/17.5PCSNT---000954/17.5PCSNT
816/17.6PLSNT---000816/17.6PLSNT
33254/17.3PASNT---033254/17.3PASNT
577/17.0PHAMD--000577/17.0PHAMD
28/17.4PESNT-----000028/17.4PESNT
8/17.4PETNT---000008/17.4PETNT
Avatar do usuário
Por gfranco
Avatar
#27850
Boa noite.
Imaginando que os dados estejam na coluna "A" começando em "A1", digite em "B1" o seguinte:
Código: Selecionar todos
=REPT("0";16-NÚM.CARACT(A1))&A1
E arraste para as demais.
At
Gfranco
Por babdallas
#27851
Ótima solução Giovani! Simples e eficiente! Parabéns!
Por Peter007
#27866
Mais um pedido de ajuda. A solução do gfranco é optima, mas será que nâo dá para por na própria celula A1 em vez de estar a copiar para a celula B1, é que assim formatava os valores das celulas que já lá se encontram e quando inserisse mais dados ela formatava para o formato correcto automaticamente ( como se fosse o cep por exemplo, mas com o formato que euu necessito )
Avatar do usuário
Por gfranco
Avatar
#27868
Boa noite Peter007.
Pelo que entendi vc quer aplicar a formatação personalizada nesses dados para que "pareçam" ter o formato que vc demonstrou, ou seja, completar com zeros à esquerda as "casas" faltantes para que todos fiquem com 16 caracteres.
Eu desconheço um tipo de formatação personalizada que trabalhe dessa forma.
Se algum membro souber, gentileza compartilhar.
Estou postando abaixo uma planilha que faz o acréscimo desses zeros no sentido literal da palavra: Não é formatação, é acréscimo mesmo.
Veja se te ajuda.
At.
Giovani.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por gfranco
Avatar
#27870
Tem sim Peter007.
Proceda da seguinte forma:
Dê um botão direito do mouse onde está o nome da sua planilha conforme imagem:
Imagem

Selecione: "Exibir código"
Feito isso, a janela do vba vai abrir .
Na janela que se abriu cole o código a seguir:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)

Dim matriz() As Variant, w As Worksheet
Dim ulinha As Long
Dim tamanhoDaMatriz As Long
Dim vstringini As Long, vstringfim As String
Dim zerosFaltantes As Integer
Set w = ActiveSheet
If Target.Column = 1 And Target.Row > 1 Then
Application.ScreenUpdating = False
Application.EnableEvents = False
        ulinha = w.Cells(Cells.Rows.Count, 1).End(3).Row
        matriz = w.Range(Cells(2, 1), Cells(ulinha, 1)).Value
        
                For i = LBound(matriz()) To UBound(matriz())
                vstringfim = ""
                vstringini = VBA.Len(matriz(i, 1))
                
                zerosFaltantes = 16 - vstringini
                If zerosFaltantes = 16 Then GoTo nova_linha
                        If zerosFaltantes > 0 Then
                        
                        For a = 1 To zerosFaltantes
                        vstringfim = vstringfim & "0"
                        
                        
                        
                        Next a
                        
                        
                        End If
                vstringfim = vstringfim & matriz(i, 1)
                matriz(i, 1) = vstringfim
nova_linha:
                Next i



w.Range(Cells(2, 1), Cells(ulinha, 1)).Clear
w.Range(Cells(2, 1), Cells(UBound(matriz()) + 1, 1)).Value = matriz
Application.EnableEvents = True
Application.ScreenUpdating = True
End If


End Sub
Pronto.
Essa planilha já estará funcionando da mesma forma que a enviada acima
Avatar do usuário
Por gfranco
Avatar
#27871
Se tiver alguma dificuldade, posta a planilha aqui no fórum mesmo:
"Clique em + resposta e logo abaixo da janela de digitação vc encontrará o botão para anexar um arquivo"
Que eu coloco pra vc.
Por osvaldomp
#27872
Código: Selecionar todos
Sub LeadingZeros()
 Dim c As Range
  For Each c In Range("A1", Cells(Rows.Count, 1).End(3))
   c.Value = Application.Rept(0, 16 - Len(c.Value)) & c.Value
  Next
End Sub
Por Peter007
#27961
[quote="gfranco"]
G franco no eu codigo onde é que eu posso alterar a coluna para actuar, no seu código está na coluna A e eu pretendia por na B. Mais uma vez obrigado
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord