Ir ao conteúdo
  • Cadastre-se
Clemerson Lopes

VBA - Procedimento muito grande

Recommended Posts

Boa tarde amigos

Eu estou trabalhando em uma planilha no Excel com esse código:
 

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("E2").Address Then
Sheets("Estoque").Cells(2, "D") = Sheets("Estoque").Cells(2, "E") + Sheets("Estoque").Cells(2, "D")
Sheets("Estoque").Cells(2, 5).ClearContents
Sheets("Estoque").Cells(2, 5).Select
End If
End Sub



Só que eu preciso usar esse código para 300 linhas no Excel e está relatando "procedimento muito grande"

alguém por acaso sabe de uma solução para esse caso?

att.
Lopes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Basole. Obrigado pela atenção

Bem, esse código eu que apresentei ali é direcionado para duas colunas (D e E) e uma linha nesse caso (Linha 2).

Ele faz a seguinte função:

 

Eu digito um valor x na célula E2 e esse valor é somado (ou subtraído dependendo do que eu coloco) na célula D2, depois o valor inserido inicialmente em E2 é limpo para que eu posso inserir um novo valor futuro.

 

No caso eu preciso usar esse código de D2 e E2 até D300 e E300 ... só que ao inserir esses códigos e ir moldando eles um por um para que funcione em todas as células que eu preciso gera a seguinte mensagem

 

Procedimento muito grande.

 

Então não sei se tem como encurtar esse comando para abranger todas as células que eu preciso.

Acho que o que gera isso é o fato de usar tantos If (no caso são 300).

 

Eu não tenho experiencia com VBA, então precisei recorrer aos amigos aqui.

 

Mais uma vez obrigado pela atenção.

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue com as alteraçoes:

 


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

If Not Intersect(Target, Range("E2:E300")) Is Nothing Then

Sheets("Estoque").Cells(2, "D") = Sheets("Estoque").Cells(2, "E") + Sheets("Estoque").Cells(2, "D")
Sheets("Estoque").Cells(2, 5).ClearContents
Sheets("Estoque").Cells(2, 5).Select

End If

End Sub

 

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

×