Ir ao conteúdo
  • Cadastre-se

Excel Como executar F2+Enter somente na célula ativa


Posts recomendados

Olá, boa tde!

Encontrei o codigo abaixo pra executar F2+Enter em toda a coluna...

Minha necessidade é pra que ele execute somente na coluna "L" e na célula em que eu alterar ou seja, somente na celula ativa.

Alguém pode me ajudar nesse código...?

 

'Criando função para automatizar F2+Enter no Excel via VBA

Sub atualizaCelula()

lin = 2
col = 2
Do While Cells(lin, col).Value <> ""
Cells(lin, col).Select
ulinha = Selection.End(xlDown).Row
For lin = 2 To ulinha
Cells(lin, col).Value = Cells(lin, col).Value * 1
Next lin
col = col + 1
lin = 2
Loop

End Sub

Link para o comentário
Compartilhar em outros sites

Basole bom dia amigo!

obrigado pela resposta mas ainda não funcionando..

O caso é o seguinte, nessa coluna "L" a partir da linha 5, sempre que insiro uma data como "dd/mm/aa" são invertidas o "dd e mm" e toda vez, preciso teclar o F2+Enter tndeu...

Seu código após dar "Enter" fica uns 10 segundos calculando e não corrige a data.

Por favor, se puder dar uma revisada ae agradeço muito porque já to biruta com isso, de tantas tentativas q já fiz aqui.. rsrs valeu!!

Link para o comentário
Compartilhar em outros sites

13 horas atrás, jcgmcs disse:

O caso é o seguinte, nessa coluna "L" a partir da linha 5, sempre que insiro uma data como "dd/mm/aa" são invertidas o "dd e mm" e toda vez, preciso teclar o F2+Enter tndeu...

Seu código após dar "Enter" fica uns 10 segundos calculando e não corrige a data.

@jcgmcs na sua primeira postagem voce emitiu essas informações acima.

 

Quanto mais dados e informações emitir facilita na pronta ajuda e a solução das suas questões.

 

Segue as alterações, aproveitando a dica do colega Patropi

 

Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Count > 1 Then Exit Sub
 
    If Not Application.Intersect(Target, _
           Range("L5:L" & Cells(Rows.Count, 12).End(xlUp).Row)) _
       Is Nothing Then
       Target.Value = Target.FormulaR1C1
    End If

End Sub

               

 

Link para o comentário
Compartilhar em outros sites

Basole boa tde amigo...

Coloquei o código no início da Plan1 (Clientes) e deu este o erro...
Erro em tempo de execução '28'
Espaço insuficiente para pilha

 

Ficou amarelo nessas linhas:

If Not Application.Intersect(Target, _
           Range("L5:L" & Cells(Rows.Count, 12).End(xlUp).Row)) _
       Is Nothing Then

Link para o comentário
Compartilhar em outros sites

Em 14/07/2021 às 05:43, jcgmcs disse:

O caso é o seguinte, nessa coluna "L" a partir da linha 5, sempre que insiro uma data como "dd/mm/aa" são invertidas o "dd e mm" e toda vez, preciso teclar o F2+Enter tndeu...

A inserção é manual ou via macro? Isso só acontece a partir da linha 5 e nas células anteriores a data fica correta? Acho que devia tentar entender porque isso acontece, para evitar e não ter que corrigir depois. Talvez seja questão de formatação.

Link para o comentário
Compartilhar em outros sites

Midori,

A inserção é manual e anterior a linha 5 não vae informações e tbém não é formatação pois já tentei de todo aqui. Porisso to apelando por VBA pra forçar a inversão...

Uma obs... há colunas em q as datas digitadas ficam corretas e em outras colunas como a "L" não.. mesmo fazendo a formatação dentro dos conformes..

Link para o comentário
Compartilhar em outros sites

@jcgmcs Talvez seja algo com o arquivo ou essa aba, acho que devia tentar uma planilha em branco ou testar outra aba para ver se resolve.

 

Sobre o erro que você comentou acima de "Espaço insuficiente para pilha", desative os eventos antes do Target.Value e ative depois assim,

 

Application.EnableEvents = False
Target.Value = Target.FormulaR1C1
Application.EnableEvents = True

 

 

Link para o comentário
Compartilhar em outros sites

@jcgmcs O comando não impede a execução, só o erro. Só vai impedir a execução de eventos se EnableEvents ficar como False e não voltar para True.

 

Veja se assim resolve,

 

If InStr(Target, "/") = 3 Then
    Dim D As Variant: D = Split(Target, "/")
    Application.EnableEvents = False
    Target.Value = D(1) & "/" & D(0) & "/" & D(2)
    Application.EnableEvents = True
End If

 

Se não der certo anexe o arquivo.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...