Notifications
Clear all

Macro para contar caracteres

5 Posts
3 Usuários
0 Reactions
1,193 Visualizações
(@thiagomox)
Posts: 2
New Member
Topic starter
 

Olá!

Sou novato em programação e macros e gostaria de uma ajuda ou um exemplo para criar uma macro no excel que conte os caracteres de uma planilha, alias, de uma célula ou de uma seleção de células. O usuário entraria com a célula ou as selecionasse onde está o texto a ser contado e a macro calcularia.
Essa macro mostraria a quantidade de caracteres encontrados, as letras, números, espaços, símbolos, etc e mostraria um extrato no final.

Por exemplo:
Texto: "Microsoft excel *"
r = 1
c = 2
e = 2
i = 1
M = 1
o = 2
f= 1
l = 1
t = 1
S = 1
x = 1
" = 2
* = 1
Espaços = 2
-----------------------------------
total com espaços: 19
Total sem espaços: 17
Total sem símbolos: 18
-----------------------------------

É possível ?

Obrigado!

Thiago

 
Postado : 30/01/2014 12:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente..

Sub AleVBA_10418()
Range("A2").Formula = "=LEN(SUBSTITUTE(A1,"" "",""""))"
MsgBox "Contém " & Range("A2").Value & "  Caracteres"
End Sub
 
Postado : 30/01/2014 1:31 pm
(@thiagomox)
Posts: 2
New Member
Topic starter
 

Primeiramente obrigado por seu tempo e disposição em me ajudar!
Testei o exemplo e ele retornou o total de caracteres e desconsiderou os espaços.
É quase isso, porém agora tenho um norte e vou tentar aprimorar.

Valeu mesmo!

abs

Thiago

 
Postado : 30/01/2014 2:46 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Amigo, vc não foi muito claro ao explicar como quer fazer isso, se é pra gerar o resultado numa planilha do excel, ou o que.

Por isso, eu fiz o código abaixo que mostra o resultado em mensagem. Confere:

Sub Listar_Caracteres_GT()

Dim Texto As String
Dim i As Integer
Dim Relatorio As String
Dim Caractere As String
Dim IntCount_I As Integer
Dim IntCount_F As Integer
Dim Count As Integer

Texto = Range("A1")

For i = 1 To 255
    Caractere = Chr(i)
    IntCount_I = Len(Texto)
    Texto = Replace(Texto, Caractere, "")
    IntCount_F = Len(Texto)
    Count = IntCount_I - IntCount_F
    If Count > 0 Then Relatorio = Relatorio & Caractere & " = " & Count & vbCrLf
Next i

MsgBox (Relatorio)

End Sub

Vc pode adaptar com o que o alevba postou.

Abs

 
Postado : 30/01/2014 4:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vai uma terceira sugestão...

Sub retorna_total_caracteres()

' conta com espaço
Dim texto As Variant
Dim texto2 As Variant


    linha = ActiveCell.Row
    coluna = ActiveCell.Column

        texto = Cells(linha, coluna)

            MsgBox ("total com espaços:" & Len(texto) )

End Sub
 
Postado : 30/01/2014 5:29 pm