Possuo uma planilha com quase 8 mil linhas de contato.
Porem esses contatos passaram por um processo de enriquecimento de base pesquisado pelo CPF do cliente. no entanto precisei confrontar o enriquecimento com nossa base para descobrir quais números eram novos e quais eram antigos.
O problema é que ao confrontar a base, a maioria nos números que vieram, constaram como NOVO, e aí notei que estava vindo como novo porque a maioria dos números de celulares da nossa base estavam sem o nono dígito. Precisava então de uma macro que fizesse essa verificação para mim e adicionasse o nono digito somente nos telefones celulares.
Pesquisando encontrei a seguinte função que aparentemente é exatamente o que eu necessito.
Function ValidarCelular(Myrange As Range) As String
On Error GoTo ErrHandler:
Dim regEx As New RegExp
Dim strPattern As String
Dim strInput As String
Dim strReplace As String
Dim strOutput As String
strPattern = "^[6|7|8|9](?:\d{7}|\d{3}-\d{4})$"
If strPattern <> "" Then
strInput = Trim(Myrange.Value)
strReplace = "9" & strInput
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.test(strInput) Then
ValidarCelular = regEx.Replace(strInput, strReplace)
Else
ValidarCelular = Myrange.Value
End If
End If
Exit Function
ErrHandler:
' Tratamento de Erro
ValidarCelular= CVErr(xlErrNA)
On Error GoTo 0
End Function
Porém quando eu tento utilizar a função acusa o seguinte erro:
ERRO DE COMPILAÇÃO : O TIPO DEFINIDO PELO USUÁRIO NÃO FOI DEFINIDO
Já tentei abrir o módulo, clicar no menu Ferramentas > Referências e assinalar a biblioteca Microsoft DAO 3.6 Object library.
Alternativamente, assinalei Microsoft Office 1x.0 Access Database Engine Object. e também ActiveX Data Objects 6.1 Library.
Porem mesmo assim o erro persiste!
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Separar fones fixos de móveis & acrescentar nono dígito
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Seg Abr 08, 2019 10:31 am
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Separar fones fixos de móveis & acrescentar nono dígito
Na falta de maiores detalhes, acredito que o erro seja declaração da variavel "regEx"
Experimente "assinalar" a biblioteca "Microsoft VBScript Regular Expressions"
Ferramentas -> Referencias -> Procure & assinale --> "Microsoft VBScript Regular Expressions" (1.0 ou 5.5)
Experimente "assinalar" a biblioteca "Microsoft VBScript Regular Expressions"
Ferramentas -> Referencias -> Procure & assinale --> "Microsoft VBScript Regular Expressions" (1.0 ou 5.5)
-
- Acabou de chegar
- Mensagens: 7
- Registrado em: Sex Abr 12, 2019 4:08 pm
Re: Separar fones fixos de móveis & acrescentar nono dígito
Boa noite Diegomarcelo,
Talvez um Loop que compare o tamanho da String e concatene um "9" no começo ja resolva seu caso,
Talvez um Loop que compare o tamanho da String e concatene um "9" no começo ja resolva seu caso,
Código: Selecionar todos
Do while activecell <> ""
if len(activecell) = 8 then
activecell = "9" & activecell
end if
activecell.offset(1,0).select
Loop