Ir ao conteúdo
  • Cadastre-se

Excel Macro parou de responder corretamente


Ir à solução Resolvido por Visitante,

Posts recomendados

Bom dia! O macro estava funcionando até que eu fiz algumas modificações e agora não estou conseguindo reparar.

 

A planilha possui três macros para cada linha. SAÍDA, ENTRADA e RELATÓRIO

 

Até o item 4 está funcionando perfeitamente, porém do item 5 em diante os três macros estão respondendo de forma irregular.

 

Alguém pode ajudar por gentiliza?

 

forumd.rar

Link para o comentário
Compartilhar em outros sites

Em 10/02/2020 às 12:06, DigusX disse:

Bom dia! O macro estava funcionando até que eu fiz algumas modificações e agora não estou conseguindo reparar.

 

A planilha possui três macros para cada linha. SAÍDA, ENTRADA e RELATÓRIO

 

Até o item 4 está funcionando perfeitamente, porém do item 5 em diante os três macros estão respondendo de forma irregular.

 

Alguém pode ajudar por gentiliza?

 

forumd.rar 332 kB · 7 downloads

up

Link para o comentário
Compartilhar em outros sites

@DigusX  Eu abri sua planilha pra dar uma olhada, mas sem saber como ela deveria funcionar, não tem como saber o que está errado.

 

E principalmente, eu teria que saber qual foi a alteração que você fez que causou o problema.

 

Sem essas informações é procurar agulha num palheiro.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

7 minutos atrás, Charley Rocha disse:

@DigusX  Eu abri sua planilha pra dar uma olhada, mas sem saber como ela deveria funcionar, não tem como saber o que está errado.

 

E principalmente, eu teria que saber qual foi a alteração que você fez que causou o problema.

 

Sem essas informações é procurar agulha num palheiro.

Quando você clica no macro de entrada ou saída, do item 1 ao 4 está funcionando corretamente. A partir do item 5 quando você clica no macro de entrada ou saída ele sempre busca o item 1.

 

 

 Vou dar entrada no item 8 por exemplo. Aí quando clico em ENTRADA ele dar entrada no item 1 e não no 8.

 

Se você criar um novo item. Item 20 por exemplo. Quando clicar em entrada ele vai dar entrada no item 1

 

Sobre a alteração que eu fiz, impossível te dizer o que foi feito que causou isso. 
 

obrigado! Aguardo retorno

 

 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, DigusX disse:

Quando você clica no macro de entrada ou saída, do item 1 ao 4 está funcionando corretamente. A partir do item 5 quando você clica no macro de entrada ou saída ele sempre busca o item 1.

 

 

 Vou dar entrada no item 8 por exemplo. Aí quando clico em ENTRADA ele dar entrada no item 1 e não no 8.

 

Se você criar um novo item. Item 20 por exemplo. Quando clicar em entrada ele vai dar entrada no item 1

 

Sobre a alteração que eu fiz, impossível te dizer o que foi feito que causou isso. 
 

obrigado! Aguardo retorno

 

 

 

Nesse caso fica impossível também te ajudar. Minha dica para o futuro é: sempre faça backup das suas planilhas antes de alterar algo significativo, principalmente se você não domina muito bem o que está fazendo.

 

Caso seja uma alteração pequena em um código, ao invés de apagar/editar a linha, coloque-a como um comentário e faça suas alterações. Se der errado é só voltar lá , apagar o que você fez e descomentar as linhas.

 

Abraço!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

55 minutos atrás, Charley Rocha disse:

 

Nesse caso fica impossível também te ajudar. Minha dica para o futuro é: sempre faça backup das suas planilhas antes de alterar algo significativo, principalmente se você não domina muito bem o que está fazendo.

 

Caso seja uma alteração pequena em um código, ao invés de apagar/editar a linha, coloque-a como um comentário e faça suas alterações. Se der errado é só voltar lá , apagar o que você fez e descomentar as linhas.

 

Abraço!

Obrigado, de coração.

 

Desculpa o modo de falar, mas nesse caso tenho que discordar que é impossível recriar algo que já foi criado. De qualquer forma agradeço por sua intenção em ajudar.

 

Alguém mais tem alguma ideia de como eu posso resolver isso? Do 1 ao 4 está funcionando. Só preciso entender como cada macro reconhece a sua linha e então dá entrada corretamente para que eu posso aplicar nos demais item.

 

por favor

Link para o comentário
Compartilhar em outros sites

  • Solução

Na planilha Cad_EPI as figuras SAÍDA que estão da linha 11 até a linha 15 têm nomes iguais, Imagem 50, e todas elas estão vinculadas a uma só linha da planilha, linha 8, por isso ocorre o erro.

Para confirmar que os nomes são iguais clique com o direito sobre uma figura de cada vez e veja o seu nome na Caixa de nome.

 

A correção mais fácil me parece que é clicar com o direito sobre a figura e alterar o seu número diretamente na Caixa de nome, por exemplo, alterar de Imagem 50 para Imagem 501, Imagem 502, ... e após alterar cada uma aperte Enter.

 

Idem, idem para as figuras ENTRADA e RELATÓRIO.

Link para o comentário
Compartilhar em outros sites

3 horas atrás, osvaldomp disse:

Na planilha Cad_EPI as figuras SAÍDA que estão da linha 11 até a linha 15 têm nomes iguais, Imagem 50, e todas elas estão vinculadas a uma só linha da planilha, linha 8, por isso ocorre o erro.

Para confirmar que os nomes são iguais clique com o direito sobre uma figura de cada vez e veja o seu nome na Caixa de nome.

 

A correção mais fácil me parece que é clicar com o direito sobre a figura e alterar o seu número diretamente na Caixa de nome, por exemplo, alterar de Imagem 50 para Imagem 501, Imagem 502, ... e após alterar cada uma aperte Enter.

 

Idem, idem para as figuras ENTRADA e RELATÓRIO.

Exatamente isso! Obrigado! Muito Obrigado!

Link para o comentário
Compartilhar em outros sites

@osvaldomp Depois da sua incrível solução, me ocorreu uma dúvida.

For i = 1 To Range("Equipamentos").Rows.Count
           If Range("Equipamentos[Ações do Estoque]")(i).Value = "" Then
                wsC.Activate
                wsC.Shapes.Range(Array("Picture 50", "Picture 49", "Picture 51")).Select
                Selection.Copy
                
                wsEPI.Activate
                Range("Equipamentos[Ações do Estoque]")(i).Select
                ActiveSheet.Paste
                Selection.ShapeRange.IncrementTop 0.75
                
                Range("Equipamentos[Ações do Estoque]")(i).Value = 1
           End If
        Next i

 

Esse código aí é responsável por copiar os macros da aba _Calculos e colar em Cad_EPI. Por esse motivo os nomes estão se repetindo, Imagem50, Imagem49... Existe alguma maneira de fazer com que eles sejam copiados para a aba Cad_EPI com nomes em sequência para que eu não tenha que editar todos manualmente? São muitos macros para ter que renomear manualmente.

 

Boa Noite, aguardo ansiosamente um retorno.

Link para o comentário
Compartilhar em outros sites

É recomendável colocar as declarações das variáveis logo abaixo do nome da Sub. No código existente faça a alteração para que fique conforme abaixo. Completei as declarações que já existiam e coloquei novas (linha em vermelho abaixo), que serão utilizadas na renomeação das figuras coladas daqui em diante.

Private Sub Worksheet_Change(ByVal Target As Range)

  Dim wsC As Worksheet, wsEPI As Worksheet, i As Long, sh As Shape, k As Long, v As Long

 

 

Para renomear automaticamente as figuras que serão coladas na planilha Cad_EPI acrescente as linhas em vermelho conforme abaixo.

                Selection.ShapeRange.IncrementTop 0.75
                
                k = ActiveSheet.Shapes.Count: v = -2
                For Each sh In Selection.ShapeRange
                 sh.Name = "Img " & k + v: v = v + 1
                Next sh

 

funcionamento da renomeação - as três figuras coladas serão renomeadas com o nome Img X, sendo o X o número que representa a quantidade de figuras existentes na planilha Cad_EPI, mais um.

Exemplo: se antes da colagem, na planilha existirem 46 figuras, então as três figuras seguintes receberão os nomes Img 47, Img 48 e Img 49.

Depois, Img 50, Img 51 e Img 52. Dessa forma os nomes não se repetirão.

Link para o comentário
Compartilhar em outros sites

2 horas atrás, osvaldomp disse:

É recomendável colocar as declarações das variáveis logo abaixo do nome da Sub. No código existente faça a alteração para que fique conforme abaixo. Completei as declarações que já existiam e coloquei novas (linha em vermelho abaixo), que serão utilizadas na renomeação das figuras coladas daqui em diante.

Private Sub Worksheet_Change(ByVal Target As Range)

  Dim wsC As Worksheet, wsEPI As Worksheet, i As Long, sh As Shape, k As Long, v As Long

 

 

Para renomear automaticamente as figuras que serão coladas na planilha Cad_EPI acrescente as linhas em vermelho conforme abaixo.

                Selection.ShapeRange.IncrementTop 0.75
                
                k = ActiveSheet.Shapes.Count: v = -2
                For Each sh In Selection.ShapeRange
                 sh.Name = "Img " & k + v: v = v + 1
                Next sh

 

funcionamento da renomeação - as três figuras coladas serão renomeadas com o nome Img X, sendo o X o número que representa a quantidade de figuras existentes na planilha Cad_EPI, mais um.

Exemplo: se antes da colagem, na planilha existirem 46 figuras, então as três figuras seguintes receberão os nomes Img 47, Img 48 e Img 49.

Depois, Img 50, Img 51 e Img 52. Dessa forma os nomes não se repetirão.

 

Funcionou!

Obrigado mais uma vez.

Boa noite!

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