Notifications
Clear all

Função para vincular um caractere ao conteúdo de uma célula

12 Posts
5 Usuários
0 Reactions
2,068 Visualizações
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

Olá!

Gostaria de saber se existe alguma função no Excel que me permita digitar determinada letra ou número e, na célula em que eu estiver digitando, apareça um símbolo reservado em uma célula própria.

Por exemplo, na célula A1, digito "@" ou qualquer outro símbolo e ela não será mais alterada, e na coluna B, cada vez que eu digitar "1" aparece "@".

Não sei se deu para entender..hehe.

Obrigada!

 
Postado : 11/04/2015 12:28 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vc quer digitar uma letra e aparecer outra ? O Excel teria que mudar o que vc escrever, conforme o conteúdo de uma célula?

o que vc poderia fazer pra atingir um resultado parecido é colocar a @ na A1 e na B1 digitar =A1...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/04/2015 12:57 pm
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

Oi Fernando!

O Excel teria que mudar a o conteúdo da célula que está sendo digitada conforme o que eu digitar e vinculado ao que a função determinou. Se eu digitar "1", aparece "@", se eu digitar "2", aparece "&". São apenas exemplos, mas a ideia é essa.
O objetivo é que nas células "fixas" fique um símbolo que não está nas teclas do teclado (portanto mais complicado de ficar sendo inserido) e nas que eu vou digitar um caractere mais rápido de inserir.

 
Postado : 11/04/2015 1:25 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

A tua dúvida ainda está vaga.

Envie um exemplo mais específico do que vc quer, com um modelo da planilha e das condições/caracteres, porque tem diferentes formas de fazer isso, e quanto melhor vc explicar, mais adequada vai ser a solução

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/04/2015 10:29 pm
(@edcronos)
Posts: 1006
Noble Member
 

não sei se entendi, talvez com evento
no caso vc tem uma tabela numerada e o conteudo
a1=@
a2=&
a3=#

considerando apenas a numeração da celuna
1=@
2=&
3=#

no caso vc quer colocar o valor 1 na celula B12 e que apareça o valor da celula A(1) >>> @

para trocar o valor sómente por vba e eventos, e pode deixar a planilha lenta
poderia ser por formula, o valor digitado teria que estar em uma celula a parte de onde tem que aparecer o simbolo

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 12/04/2015 4:00 pm
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

Talvez não tenha como fazer o que penso, mas segue o modelo. Nele, ao invés de "digitar" ou copiar e colar as carinhas em cada célula, eu queria digitar, por exemplo "1" e aparecer a carinha feliz; ou digitar "2" e aparecer a carinha triste.

Como na prática o documento seria grande e conteria diversas planilhas, seria trabalhoso ainda fazer referência à célula que contém o símbolo digitando, por exemplo, "=A1" em cada uma. Gostaria de algo bem prático, mas creio que talvez não seja possível.

Obrigada a todos!

 
Postado : 13/04/2015 8:00 am
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

poderia ser por formula, o valor digitado teria que estar em uma celula a parte de onde tem que aparecer o simbolo

É isso, Edcronos, mas qual fórmula eu deveria usar nesse caso? (excluindo a possibilidade por VBA). O número "1" foi apenas um exemplo, poderia ser qualquer letra ou número (ele seria um "atalho" pra facilitar), mas desde que na célula onde eu o digitei apareça aquele símbolo constante nas células A1, A2 e A3 que vc colocou, conforme o caso.

Obrigada!

 
Postado : 13/04/2015 8:07 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá Mariany!
Como o Edcronos comentou, somente por VBA para fazer isso que você comentou, se é que compreendemos de fato a sua necessidade.

Apenas para você ver o que é possível fazer com VBA. Faça o teste com o código abaixo copiando e colando no módulo de alguma planilha:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim letra() As String
Dim x As Integer
Application.EnableEvents = False

If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
Application.EnableEvents = True
Exit Sub
End If

On Error GoTo erro
For x = 1 To Len(Target)
    ReDim Preserve letra(1 To x)
    
    Select Case Mid(Target.Text, x, 1)
    
        Case 1
            If Range("A1") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A1").Text
            End If
          
         Case 2
            If Range("A2") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A2").Text
            End If
            
        Case 3
            If Range("A3") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A3").Text
            End If
          
         Case 4
            If Range("A4") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A4").Text
            End If
            
        Case 5
            If Range("A5") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A5").Text
            End If
          
         Case 6
            If Range("A6") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A6").Text
            End If
            
        Case 7
            If Range("A7") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A7").Text
            End If
          
         Case 8
            If Range("A8") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A8").Text
            End If
            
        Case 9
            If Range("A9") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A9").Text
            End If
          
         Case 0
            If Range("A10") = "" Then
            letra(x) = Mid(Target, x, 1)
            Else
            letra(x) = Range("A10").Text
            End If
    
        Case Else
            letra(x) = Mid(Target, x, 1)
    End Select
  
Next x

Target.Value = Join(letra, "")
Application.EnableEvents = True
Exit Sub
erro:
Application.EnableEvents = True
End Sub

Para fazer isso, aperte ALT+F11 no Excel, do lado esquerdo deverá aparecer uma estrutura de pastas do Excel, que é parecido com o Windows Explorer. Localize o arquivo aberto e escolha uma das planilhas (Ex: Plan1) e dê dois cliques encima, que do lado direito vai aparecer a folha de códigos de planilha, e é ai que você deve colar o código. Feche o VBA.

O código funciona da maneira que você descreveu. Da célula A1 até A10, você vai colocar os símbolos desejados, e então em qualquer outra célula, ao digitar qualquer número, os números serão trocados de acordo com os simbolos definidos em A1:A10. A troca só vai ocorrer após dar ENTER, pois não há evento que roda ao estar editando uma célula.

Veja se é isso a sua idéia. E só de curiosidade, qual a intenção ou idéia dessa sua necessidade?

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 13/04/2015 8:08 am
(@edcronos)
Posts: 1006
Noble Member
 

como falei, na celula exata que escreve não daria para ser com formulas
teria que ser com macro
por formula apenas em celula a parte
tipo em b2 escreve 1 e o @ aparece em c2

a formula estaria em C2
essa formula verificaria a celula B2 e retornaria o resultado encontrado na sua tabela de simbolos

por macro seria como o issamu falou ou algo parecido dependendo do que vc realmente quer

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/04/2015 8:28 am
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

Êeee, obrigada Issamu, salvou meu sossego! :D

Era exatamente isso que eu queria, mas não sabia explicar hahaha.

Estou tentando montar uma planilha de estudos (faculdade e concursos) e como sou muito desorganizada mas perfeccionista (veja que problema), quero e preciso controlar os percentuais de acertos em exercícios de várias disciplinas, entre outras atividades.

A princípio, os símbolos usados serão "✓" e "X", e vou aperfeiçoando, se precisar.

Agora, abusando da boa vontade de vcs, seria possível incluir nesse código a "informação de que "✓" deve ter a cor verde e "x" a cor vermelha? hahaha ... consegui fazendo formatação condicional, pra cada planilha do arquivo eu copio e colo a formatação que fiz na primeira, mas como tem várias colunas (aulas), dá um trabalhinho chato.

Edcronos, obrigada também!

 
Postado : 13/04/2015 9:01 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá Mariany!
Entendendo um pouco melhor a sua necessidade, eu aconselho a não recorrer ao VBA, pois este é um recurso para desenvolvedores que com certeza possibilita a criação de muitas coisas, mas por outro lado é um campo mais complexo e possui alguns contras, como por exemplo, você não vai mais ter a opção de desfazer alterações da sua planilha e pode tornar suas planilhas lentas.

Sou do ponto de vista que se é possível utilizar as ferramentas nativas do Excel, mantenha-se nelas! E no seu caso, eu acredito que você pode utilizar o gerenciador de nomes da aba de "Fórmulas" para cadastrar os símbolos que você deseja e então utilizá-los na planilha com o nome cadastrado. Por exemplo, cadastre o símbolo "✓" com a letra v, e ao digitar na célula =v, o símbolo será mostrado.

Quanto a questão da cor vermelha e verde para cada simbolo, eu também sugiro permanecer com a ferramenta de "Formatação condicional", onde creio que você pode aplicar uma regra para toda a planilha, ao invés de aplicar para cada coluna, pelo que entendi.

Olhe o modelo anexo para compreender melhor.

Abraços! =)

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 13/04/2015 10:55 am
Mariany
(@mariany)
Posts: 10
Active Member
Topic starter
 

Issamu,

Não estava conseguindo fazer a formatação condicional dessa forma, mas agora fechou! MUITO obrigada!

 
Postado : 13/04/2015 6:17 pm