VBA

Como fazer o Excel alternar entre células pré-determinadas automaticamente

Automatize cada vez mais seus trabalhos com essa macro de simples aplicação.

Por Maximiliano Meyer em 23/06/2015 às 10:01 - atualizado: 10/08/2017 08:10

Hoje vamos aprender um recurso muito bacana. Com ele nossa planilha “informará” aonde o usuário colocará o próximo dado. Funciona assim: Digamos que seu formulário contenha as células A5, B8 e E9, após ele inserir o valor em A5 e confirmar, o cursor irá automaticamente para a próxima célula editável, no caso, B8.

Vamos colocar na prática este cenário. Veja o exemplo abaixo:

Como fazer o Excel alternar entre células pré-determinadas automaticamente

Veja que nosso utilizador da planilha poderá alterar as células C6 (Código), C8 (Unidades), F6 (Filial), F8 (Preço). Repare que F10 (Preço) não será mexida, é automática. O código utilizado será:

Private Sub Worksheet_Change(ByVal Target As Range)
  
  On Error GoTo z
  Application.EnableEvents = False If Not Intersect(Target, Range("célula onde o usuário irá inserir o valor")) Is Nothing Then
["próxima célula onde o Excel irá automaticamente"].Activate
  End If Continue:
  Application.EnableEvents = True
  Exit Sub

  z:
  MsgBox Err.Description
  Resume Continue
End Sub

 Uma dica sempre válida é copiar o código e não colá-lo, senão poderá dar algum problema. Na prática colocaremos essa parte

If Not Intersect(Target, Range("célula onde o usuário irá inserir o valor")) Is Nothing Then
[próxima célula onde o Execl irá automaticamente].Activate

Quantas vezes forem necessárias. No nosso caso são 3 vezes. Ok, já temos o código, mas e o que fazer com ele? Se você não sabe como criar uma macro, temos um super post sobre o assunto, confira. Continuando:

Nosso código inteiro ficará:

Private Sub Worksheet_Change(ByVal Target As Range)

  On Error GoTo z
  Application.EnableEvents = False If Not Intersect(Target, Range("C6")) Is Nothing Then
  [C8].Activate
  ElseIf Not Intersect(Target, Range("C8")) Is Nothing Then
  [F6].Activate
  ElseIf Not Intersect(Target, Range("F6")) Is Nothing Then
  [F8].Activate
  End If Continue:
  Application.EnableEvents = True
  Exit Sub

  z:
  MsgBox Err.Description
  Resume Continue

End Sub

Como fazer o Excel alternar entre células pré-determinadas automaticamente

Agora veja que pode ser muito interessante se você mesclar essa macro que aprendemos hoje com um bloqueio de células, por exemplo, onde o usuário não consegue clicar onde você não permitir. Enfim, as aplicações são inúmeras.

Para finalizar, confira um gif de como ficou, na prática, nosso exemplo. A cada vez que colocamos um valor e teclamos "enter", a célula selecionada é alternada automaticamente para aquelas que definimos, e mais, seguindo a ordem pré-estabelecida.

Como fazer o Excel alternar entre células pré-determinadas automaticamente

Bacana, certo? Se ficaram dúvidas, comente e logo sanaremos essa dúvida. Até a próxima.

Como fazer o Excel alternar entre células pré-determinadas automaticamente

relacionados

Participe
do nosso grupo

recentes

compartilhe este post

  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar