boslotim
Tô em todas
Registrado
1.4K Mensagens
107 Curtidas
Você está usando qual o office?
O meu office 2000 tem destas coisas: não é tudo que pode-se usar... Houve casos de mensagens de erro com macro no 2000, mas que no 2007 funcionava perfeitamente bem...
As vezes no menu suplementos tem-se solução para alguns deste problemas com excel.
Assim, um "sábio" discorda do outro e expoe também suas idéias, que se tornam vagas, se analisadas por um 3º sábio. E isso não tem fim...Muito diferente de toda essa confusão, é o Perfeito pensamento e Palavras de Deus.
MARV
Membro Junior
Registrado
82 Mensagens
1 Curtida
O meu office é o 2003, mas eu vi em um site que pra resolver este problema tem que dividir o procedimento pra que ele fique menor, o problema é que eu não sei como fazer esta divisão.
Ainda não sei como se faz mas, quando eu descobrir, passo pra todo mundo. Dores do Turvo-MG.
MARV
Membro Junior
Registrado
82 Mensagens
1 Curtida
Por favor pessoal, dá uma força ai, ninguém tem uma dica pra ajudar?
Ainda não sei como se faz mas, quando eu descobrir, passo pra todo mundo. Dores do Turvo-MG.
gjudice
Veterano
Registrado
1K Mensagens
22 Curtidas
Olá,
Posta a planilha ae com o codigo pra alguem poder ver onde poderia kebrar ele...
[]´sssss
Iron Maiden's Gonna get you no matter how far...
...Iron Maiden watching the dead!!!
Flashcooler
Geek
Registrado
2K Mensagens
74 Curtidas
Divida o procedimento em funções.
T mais
Society, you are a crazy breed I Hope you are not lonely without me...
When you want more than you have You think you need... !!
MARV
Membro Junior
Registrado
82 Mensagens
1 Curtida
A função é esta:
Range("W3").Select
Selection.Copy
Range("Y3").Select
Selection.PasteSpecial Paste:=xlPasteValue
A questão é que isto tem que ir até (W769) e (Y769), copiando das céluas "W" e colando nas células "Y", e não posso simplificar a função(Range(W3:W769)), por que dá erro, tem uma outra macro nesta tabela que executa uma soma apartir destas células coladas e se colar tudo de uma vez ela dá erro e não executa a soma.
Ainda não sei como se faz mas, quando eu descobrir, passo pra todo mundo. Dores do Turvo-MG.
Flashcooler
Geek
Registrado
2K Mensagens
74 Curtidas
E se você utilizar um laço FOR ??? Não seria melhor ??
Society, you are a crazy breed I Hope you are not lonely without me...
When you want more than you have You think you need... !!
MARV
Membro Junior
Registrado
82 Mensagens
1 Curtida
Desculpe a ignorância,Flashcooler, mas eu não sei nada sobre laço FOR, pode me dá uns toques como fazer?
Ainda não sei como se faz mas, quando eu descobrir, passo pra todo mundo. Dores do Turvo-MG.
MARV
Membro Junior
Registrado
82 Mensagens
1 Curtida
Quero agradecer ao Flashcooler e ao boslotim, que tentaram me ajudar mas, acho que não consegui passar de maneira clara o meu problema. Encontrei um post na internet, agradeço Felipe matheus, até é importante que se dê os créditos, pois eu vasculhei a internet e não encontrei nada, a não ser seu post, que desse uma luz sobre o assunto, e olha que encontrei mais pessoas com o mesmo problema e em nenhum lugar encontrei alguém dando como resolvido, por isso ai vai como resolver o problema, de maneira clara para leigo mesmo como eu. Como sou bastante leigo no assunto mesmo com o post que encontrei tive que bater cabeça pra resolver. Então resolvi postar de maneira bem clara. Se você vai colocar um botão em sua planilha com uma macro e esta macro é muito grande ao ponto de dar erro. Você deve primeiramente criar a macro normalmente sem vinculá-la ao botão ainda. Supondo que sua macro seja macro 1 e tenha umas 6.000 linhas, talvez você consiga dividi-la em 4 procedimentos. Então você vai até a linha de número 1500 (existem programas que até dão onde você consegue dividir sem dar erro de tamanho de procedimento mas acho que dá pra ir na base do erro/acerto), escreve nesta linha end sub (que significa que sua macro 1 termina neste ponto). Vai pra próxima linha escreve: sub macro2(), daí automaticamente já vai ser dividida em 2 o seu procedimento. Na próxima linha escreva: call sub macro1() (isto significa que quando você executar a macro 2 além dela executar os seus procedimentos ela também executará os procedimentos da macro 1, daí é só fazer este procedimento quantas vezes for necessário, quando da última divisão você entra com a macro do botão, ou seja, você vai inserir : end sub e logo abaixo: sub botão1_clique() e na próxima linha: call macro 3 (se, como neste caso, estiver dividindo o procedimento em três). Assim quando você acionar o botão 1 ele vai executar todas as macros e não retornará mais erro de tamanho.
EX. Supondo que temos o botão1 executando a macro abaixo e quando acionassemos o botão retornasse a mensagem de procedimento muito grande, então vamos dividi-la em 4 procedimentos:
Sub Botão1_Clique()
Botão1_Clique Macro
Macro gravada em 26/6/2008 por MARV
Range("W3").Select
Selection.Copy
Range("Y3").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("W4").Select
Selection.Copy
Range("Y4").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("W5").Select
Selection.Copy
Range("Y5").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("W6").Select
Selection.Copy
Range("Y6").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("W7").Select
Selection.Copy
Range("Y7").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("W8").Select
Selection.Copy
Range("Y8").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
Dividida em 4 procedimentos:
Sub Macro1()
Macro 1 Macro
Macro gravada em 19/7/2008 por MARV
Range("W3").Select
Selection.Copy
Range("Y3").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
_____________________________________________________
Sub Macro2()
Call Macro 1
Range("W4").Select
Selection.Copy
Range("Y4").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
_____________________________________________________
Sub Macro 3()
Call Macro2()
Range("W5").Select
Selection.Copy
Range("Y5").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
_____________________________________________________
Sub Macro 4()
Call Macro3()
Range("W6").Select
Selection.Copy
Range("Y6").Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
_____________________________________________________
Sub Botão1_Clique()
Call Macro4
Range("W7").Select
Selection.Copy
Range("Y7").Select
Selection.PasteSpecial Paste:=xlPasteValues
End sub
Assim quando acionado o botão 1 serão executados todos os procedimentos. É importante que você divida no lugar certo sem separar condições. Por exemplo se a macro está copiando e colando você não pode separar na linha em queestá copiando e sim após a linha de colando.
Ainda não sei como se faz mas, quando eu descobrir, passo pra todo mundo. Dores do Turvo-MG.