Notifications
Clear all

Onchange no excel (contagem de caracteres)

6 Posts
2 Usuários
0 Reactions
1,173 Visualizações
(@jafdias2)
Posts: 9
Active Member
Topic starter
 

Olá PEssoal

Tenho uma planilha que gostaria de fazer uma contagem de caracteres disponíveis para digitação.
Tenho que alertar que posso ter no máximo 300 caracteres em uma celula.
Por exemplo:
Na célula A1 eu tenho um campo onde descrevo o endereço.
Na célula A2 eu tenho um campo onde faço uma conta ( =(300-LEN(A1)).

Gostaria de saber se o campo que tenho na célula A2 pode ser atualizada automaticamente, enquanto estou digitando a célula A1.
Obrigado
jafdias

 
Postado : 20/03/2014 5:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Poste seu arquivo modelo compactado!

Att

 
Postado : 21/03/2014 7:43 am
(@jafdias2)
Posts: 9
Active Member
Topic starter
 

Segue arquivo.

Obrigado

 
Postado : 21/03/2014 10:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

De forma primitiva, o excel tem que ler os dados, isso se dar ao fato apertar a tecla enter.

Use uma validação de dados.
Veja:
http://www.sendspace.com/file/ppbquv

Att

 
Postado : 22/03/2014 7:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

No Excel não existem um evento que detecte a quantidade de teclas pressionadas, então só após o enter é possível contar os caracteres digitados em uma célula

Uma opção é utilizar um formulário para inclusão dos dados e efetuar essa "conta" ai. Veja no anexo um exemplo bem simples.

 
Postado : 22/03/2014 7:56 am
(@jafdias2)
Posts: 9
Active Member
Topic starter
 

Reinaldo / Alexandre e amigos
Obrigado pela informação.

Consegui solucionar o meu problema, mas com uma solução diferente.

Anexei o arquivo para que vcs possam ver o que fiz.

Tenho um campo com uma valor (Endereço) e gostaria de adicionar um comentário adicional após o fim deste endereço, ou seja, concatenar o endereço com este campo adicional.
Portanto, este campo de comentário, eu gostaria que fosse mostrando a quantidade de carcteres disponíveis enquanto eu fosse digitando o texto. (pois no sistema tenho uma limitação de 300 chars)

O que fiz foi o seguinte:
Criei um "text box" e adicional um "label" com o text de qtde de Carcteres disponíveis : 'Label1.Caption = 300 - Len(ws.Cells(2, 2)) & " Caracteres Disponíveis" '

O meu código ficou assim:

Dim ws As Worksheet
Private Sub TextBox1_GotFocus()
Set ws = ThisWorkbook.Sheets("Sheet1")
Label1.Caption = 300 - Len(ws.Cells(2, 2)) & " Caracteres Disponíveis" '
Me.TextBox1.WordWrap = True
End Sub

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Set ws = ThisWorkbook.Sheets("Sheet1")

If TextBox1 = "" Then
ws.Cells(13, 1) = ""
End If

If TextBox1 <> "" Then
Label1.Caption = 300 - Len(ws.Cells(2, 2)) & " Caracteres Disponíveis" '
ws.Cells(13, 1) = Me.TextBox1
If CInt(Mid(Label1.Caption, 1, InStr(1, Label1.Caption, "C") - 2)) <= -1 Then
MsgBox "A quantidade de caracteres disponível foi excedida", vbCritical, "Aviso"
Exit Sub
End If
Else
Label1.Caption = ""
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C21")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Set ws = ThisWorkbook.Sheets("Sheet1")
TextBox1.Activate
TextBox1 = "."
TextBox1.SelStart = Len(TextBox1.Text)
TextBox1 = ""
Label1.Caption = 300 - Len(ws.Cells(2, 2)) & " Caracteres Disponíveis" '

End If
End Sub

Anexei a planilha para que possam ver o modelo de como ficou.
Abs e obrigado

 
Postado : 31/03/2014 3:19 pm