Ir ao conteúdo
  • Cadastre-se

Excel VBA - Rodar rotina quando alterar células com fórmulas


Ir à solução Resolvido por Muca Costa,

Posts recomendados

Olá Boa Tarde!!

 

No arquivo em anexo, na guia "2021" coluna "C" eu consigo escolher um número. Se eu escolher o número 4 (por exemplo), ele fica indisponível para nova escolha. Essa lista de validação de dados está vinculada à guia "TEMAS" coluna "B".

 

O que eu preciso é : uma rotina que copie o Range B3:B196 da guia "TEMAS" e cole só valores no Range C3:C196 da própria guia "TEMAS".  E que essa rotina rode toda vez que eu escolher um novo número na guia "2021"

 

Obs.: A Coluna B de TEMAS se altera automaticamente toda vez que escolho um número na guia 2021.

 

Obrigado.....

TESTE.zip

Link para o comentário
Compartilhar em outros sites

EM UM MÓDULO:
Sub Atualiza()
    Sheets("TEMAS").Select
    Range("B1").Select
    Columns("B:B").Select
    Selection.Copy
    Columns("C:C").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
End Sub

NA GUIA "2021":
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 3 Then Exit Sub
    If Target.Offset(, 0).Value >= 1 Then
    Atualiza
    End If
End Sub

 

Link para o comentário
Compartilhar em outros sites

@Muca Costa MUUUITO BOM.... ficou excelente!

 

Só uma outra coisa, eu percebi que ao final da rotina ele vai para a guia TEMAS e termina lá. 

Suponhamos que eu faça a inclusão do número na coluna C da planilha 2021 (mas eu tenha outras guias - 2019,2020, 2022). Existe a possibilidade de eu executar a ação em uma dessas guias e a rotina finalizar na mesma guia que estou adicionando o número? Tipo para o usuário nem perceber a rotina, sabe?

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Muca Costa disse:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Guia As String
    Guia = ActiveSheet.Name
    If Target.Column <> 3 Then Exit Sub
    If Target.Offset(, 0).Value >= 1 Then
    Atualiza
    End If
    Sheets(Guia).Select
End Sub

Tente assim...

 

 

Perfeito Show de Bola!! Muito obrigado mais uma vez

 

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!