Notifications
Clear all

Selecionar uma Célula Específica com Enter

12 Posts
6 Usuários
0 Reactions
2,705 Visualizações
(@sandro)
Posts: 5
Active Member
Topic starter
 

Boa tarde a todos.
Caros colegas, eu agradeço se puderem me ajudar na situação abaixo:
Tenho uma Planilha e preciso que ao Pressionar a tecla ENTER, o Cursor vá para uma célula específica.
Exemplo:Aperto o Enter e vai para a F7. Ao apertar o Enter novamente o cursor vai para a célula F9.
Esta Planilha está Protegida, porém essas Células estão Desprotegidas.
Meu excel é 2007
O VBA é o 6.3
Antecipadamente agradeço a atenção.

 
Postado : 08/03/2017 10:56 am
(@mprudencio)
Posts: 2749
Famed Member
 

Protegendo a planilha e nao permitindo que selecione celulas bloqueadas vai funcionar.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/03/2017 11:36 am
(@sandro)
Posts: 5
Active Member
Topic starter
 

Olá MPrudencio, obrigado pela atenção. A Planilha já está dessa forma que você falou, as células que estão bloqueadas não dá pra selecionar, mas não está funcionando.
Pode ser que exista algum comado em VBA para resolver. Eu pesquisei e até tentei aplicar alguns códigos, mas não tive êxito. Talvez eu esteja colocando algum comando errado ou colocando no lugar errado, até porque eu não entendo de VBA.

 
Postado : 08/03/2017 2:15 pm
(@sandro)
Posts: 5
Active Member
Topic starter
 

Boa tarde!
Ainda não consegui resolver, se alguém ainda quiser ou puder me ajudar serei muito grato.

 
Postado : 09/03/2017 1:49 pm
(@vinniz)
Posts: 27
Eminent Member
 

Boa noite, amigo
Segue anexo arquivo para testes.
Veja se é isso que precisa.

Código para colocar na planilha que irá mexer:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Enter padrão
Application.OnKey "{RETURN}", "selecionar"
'Enter teclado númerico
Application.OnKey "{ENTER}", "selecionar"
End Sub

Inserir um módulo e colocar esse código (nesse caso usei A1):

Sub selecionar()

'celula selecionada
Range("A1").Select


End Sub
 
Postado : 09/03/2017 8:52 pm
(@sandro)
Posts: 5
Active Member
Topic starter
 

Boa noite pessoal. Vou explicar melhor a minha solicitação, pois até o momento não consegui resolver:
Eu preciso que toda vez que Pressionar a tecla ENTER,o Cursor vá SEMPRE para uma Célula Desprotegida.
Estou passando as Células que eu preciso que ele siga: ( Seria nessa Sequência )
F7
F9
Q5
Q7
Q9
F18
F20
F22
F24
N18
N20
N24
Desde já, agradeço muito mesmo se vocês conseguirem me ajudar.
Atenciosamente,
Sandro.

 
Postado : 13/03/2017 7:44 pm
(@bahge)
Posts: 2
New Member
 

Boa noite,
Fiz uma adequação a proposta do vinniz e espero ajudar.
Me perdoe se não souber colocar como ele mas sou novo no fórum.

Abra o modo desenvolvedor e coloque na planilha que deseja que ocorra o movimento o código que ele descreveu, no meu caso aqui é Plan1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Enter padrão
Application.OnKey "{RETURN}", "selecionar"
'Enter teclado númerico
Application.OnKey "{ENTER}", "selecionar"
End Sub

No módulo tente assim:

Dim nEnter As Integer

Public Sub selecionar()
nEnter = nEnter + 1
'Verificando a célula selecionada e adicionando um a váriavel de contagem
Select Case nEnter
     1 'Célula F7
        ActiveSheet.Range("F7").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 2 'Célula F9
        ActiveSheet.Range("F9").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 3 'Célula Q5
        ActiveSheet.Range("Q5").Select
        nEnter = nEnter + 1
        Exit Sub
    Case[/color] 4 'Célula Q7
        ActiveSheet.Range("Q7").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 5 'Célula Q9
        ActiveSheet.Range("Q9").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 6 'Célula F18
        ActiveSheet.Range("F18").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 7 'Célula F20
        ActiveSheet.Range("F20").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 8 'Célula F22
        ActiveSheet.Range("F22").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 9 'Célula F24
        ActiveSheet.Range("F24").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 10 'Célula N18
        ActiveSheet.Range("N18").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 11 'Célula N20
        ActiveSheet.Range("N20").Select
        nEnter = nEnter + 1
        Exit Sub
    Case 12 'Célula N24
        ActiveSheet.Range("N24").Select
        nEnter = nEnter + 1
        Exit Sub
    Case Else
        nEnter = 0
End Select
End Sub

Espero ter ajudado.
Att
Leandro Garcia

 
Postado : 13/03/2017 8:39 pm
(@bahge)
Posts: 2
New Member
 

Boa noite, Sandro.
Acabei colando o código errado... apague os:
nEnter = nEnter + 1
Entre as seleções e os finalizadores de rotina, Exit Sub.
Foi mal mas acabei me atrapalhando com a formatação.
Ficaria assim...

...
Select Case nEnter
Case 1 'Célula F7
ActiveSheet.Range("F7").Select
Exit Sub
Case 2 'Célula F9
ActiveSheet.Range("F9").Select
Exit Sub
...

Att
Leandro Garcia

 
Postado : 13/03/2017 8:54 pm
(@vinniz)
Posts: 27
Eminent Member
 

Bom dia!
Perfeita a solução do Leandro também.

Eu fiz numa planilha de um jeito para ficar um pouco mais variavel se preferir.
Oculta vai estar uma planilha chamada "APOIO", nela você pode colocar as células onde a seleção deve acontecer.

abraços,
Vinicius

 
Postado : 15/03/2017 6:02 am
(@sandro)
Posts: 5
Active Member
Topic starter
 

Boa noite.
Meus agradecimentos aos amigos Leandro e Vinniz. Os dois se empenharam e conseguiram me ajudar :D
Graças ao profissionalismo e a boa vontade de vocês de ajudarem as pessoas, amanhã eu posso entregar meu serviço
100% correto.
Um grande abraço,
Sandro.

 
Postado : 15/03/2017 9:08 pm
(@joaobpaulo)
Posts: 1
New Member
 

Boa noite pessoal. Sou novo por aqui. Estava a procuro de um código que fizesse exatamente isso, ou seja, ao pressionar ENTER a célula ativa mudasse para a próxima por mim escolhida ou onde deveria ser inserido um dado. Todos que encontrei faziam o que eu queria so que so depois de algum dado ser digitado o que não me satisfazia porque algum campo de minha planilha obrigatoriamente teria de ficar em branco (um cadastro de funcionários). Supondo que um empregado não tenha, por exemplo, CNH, o campo dessa informação deveria ficar em branco... Esse código me ajudou, porém, tem mais uma ressalva: todas as demais planilhas também saltam as mesmas células e eu quero que isso ocorra somente na planilha de inserção de dados. Como fazer isso. Podem me ajudar. Ficarei imensamente grato. João: jobapaulo@gmail.com

Obrigado.

 
Postado : 01/01/2021 7:31 pm
(@anderson)
Posts: 203
Reputable Member
 
'O CÓDIGO ABAIXO DEVE SER COLOCADO NUM MÓDULO
Dim nEnter As Integer


Public Sub selecionar()

If ActiveSheet.Name = "MENU" Then
nEnter = nEnter + 1
'Verificando a célula selecionada e adicionando um a váriavel de contagem
Select Case nEnter
Case 1 'Célula F7
ActiveSheet.Range("F7").Select
'nEnter = nEnter + 1
Exit Sub
Case 2 'Célula F9
ActiveSheet.Range("F9").Select
'nEnter = nEnter + 1
Exit Sub
Case 3 'Célula Q5
ActiveSheet.Range("Q5").Select
'nEnter = nEnter + 1
Exit Sub
Case Else
nEnter = 0
End Select
'ActiveSheet.Range("a1").Select

Else

ActiveCell.Offset(1, 0).Select

End If
End Sub

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 02/01/2021 9:31 pm