Ir ao conteúdo
  • Cadastre-se
Renan Menezes

Excel VBA - Alteração automática do valor de célula em lista

Recommended Posts

Olá,

Tenho uma tabela 2 lin x14 col cujo valor a ser inserido em cada uma das células abaixo do cabeçalho (linha 1) é fornecido em uma lista de validação de dados. O valor das células são interdependentes, de tal modo que o valor selecionado em uma célula interfere na opção de valores disponível na lista das células subsequentes.

Construí um código VBA que me permite, ao alterar o valor de uma célula, preencher automaticamente o valor das células subsequentes, sem com isso limpar a lista de dados da célula. Isso corrige a "lentidão" da validação de dados de fornecer/sugerir automaticamente um valor.

Porém, a macro não funciona. Segue o código escrito:

Sub AtualizarLista()



Dim i, j As Integer



i = ActiveCell.Column



If Worksheet("Planilha1").ActiveCell.Row(2) = True And Worksheet("Planilha1").ActiveCell.Column(">2" And "<14") = True Then

        Select Case ActiveCell.Value

                Case .Change

                    For j = i + 1 To 14

                    ActiveCell.Offset(0, j).Value = Application.WorksheetFunction.VLookup(Range(Cells(2, i)).Value, Worksheet("Planilha4").Range(Cells(3, 120 + i), Cells(2649, 148)), j, False)

                    ActiveCell.Offset(0, j).Value.Copy

                    ActiveCell.Offset(0, j).Value.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

        End Select

End If

End Sub

 

Editado por DiF

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, CasaDoHardware disse:

Melhor disponibilizar o arquivo e o resultado esperado.

Desabilitei a macro pra poder enviar. (O site não aceita arquivos .xlsm)

Salvei como .xlsx

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renan

 

O fórum aceita sim, basta apenas você ZIPAR o arquivo.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

image.png

adicionado 3 minutos depois

Mano, é simples

 

Eu só quero criar uma macro que realize a seguinte operação para cada alteração realizada em uma célula:

 

De j = i+1 até 14

Alterar o valor de Cells(2,j) pra cada alteração realizada em Cells(2,i).

 

i e j são um vetor de dimensão 14 (só existem 14 colunas)

Editado por Renan Menezes

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, CasaDoHardware disse:

Não é nao!

Não consigo zipar.

 

O site só aceita arquivos de até 5 Mb. Zipado o arquivo excede o limite

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nao entendi o que você quer fazer.

 

Em cada celula da linha 1 tem uma validação que altera a celula imediatamente abaixo.

Explica o que é pra fazer?

Qual celula vai servir de referencia para alterações?

 

Enfim esta confuso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, CasaDoHardware disse:

Eu nao entendi o que você quer fazer.

 

Em cada celula da linha 1 tem uma validação que altera a celula imediatamente abaixo.

Explica o que é pra fazer?

Qual celula vai servir de referencia para alterações?

 

Enfim esta confuso.

 

Esquece a linha 3...

 

Na linha 2, as células estão com validação de dados.

 

As células da linha 2 são interdependentes, de tal forma que qualquer alteração no valor de uma célula (ex. "B2") modifica a lista de opções das células subsequentes ("C2:O2").

 

Apesar de modificar a lista de opções, não há uma modificação no valor atual das células.

 

Quero criar uma macro que modifique automaticamente o valor das células subsequentes, com a alteração em qualquer célula da linha 2.

 

Quero ainda que o valor a ser preenchido automaticamente nessas células tenha como fonte a "Planilha4!DQ3:ER2649".

Editado por Renan Menezes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×