Gneccao Posted May 4, 2012 Report Share Posted May 4, 2012 Boa Tarde, tenho uma planilha no Excel que quando um usuario aperta um botão, ele pega a linha selecionada e recorta ela e cola em uma outra aba.O problema é que o Código retorna o Erro quando você clica a primeira vez, mas se você clicar novametne, ele roda sem apresentar problemas.segue o Código Abaixo, ele apresenta erro, apenas as vezes. ActiveCell.Range("A1:AM1").Select Selection.Copy Sheets("resolvidas").Select Range("A3").Select ActiveSheet.Unprotect "12312" Application.EnableEvents = False Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell = valmax + 1 ActiveCell.Range("B1:AM1").Select ActiveSheet.Paste Sheets("Controle").Select ActiveCell.Range("S1:AM1").Select Selection.ClearContents Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted May 8, 2012 Author Report Share Posted May 8, 2012 ninguém? Quote Link to comment Share on other sites More sharing options...
0 benzadeus Posted May 14, 2012 Report Share Posted May 14, 2012 Olá,Tente usar:Sub Teste() Application.EnableEvents = False ActiveCell.Range("A1:AM1").Copy Destination:=Sheets("resolvidas").Range("A3").Select Sheets("resolvidas").Unprotect "12312" Sheets("resolvidas").End(xlDown).Offset(1, 0).Paste ActiveCell.Range("S1:AM1").ClearContents Sheets("resolvidas").Protect "12312" Application.EnableEvents = TrueEnd Sub Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 6, 2012 Author Report Share Posted June 6, 2012 Opa, brigado pela resposta, tive que ficar ausente durante um tempo e so agora, eu consegui ver a resposta.Tentei colocar o seu script, mas o mesmo retorna o seguinte erro:"Não é possivel obter a Propriedade Select da classe Range" Quote Link to comment Share on other sites More sharing options...
0 benzadeus Posted June 9, 2012 Report Share Posted June 9, 2012 Falha minha. Experimente trocarActiveCell.Range("A1:AM1").Copy Destination:=Sheets("resolvidas").Range("A3").Select por ActiveCell.Range("A1:AM1").Copy Destination:=Sheets("resolvidas").Range("A3") Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 10, 2012 Author Report Share Posted June 10, 2012 Ola,usando o seguinte codigoApplication.EnableEvents = False Sheets("resolvidas").Unprotect "12312" ActiveCell.Range("A1:AM1").Copy Destination:=Sheets("resolvidas").Range("A3") Sheets("resolvidas").End(xlDown).Offset(1, 0).Paste ActiveCell.Range("S1:AM1").ClearContents Sheets("resolvidas").Protect "12312" Application.EnableEvents = True aprensenta o seguinte erro na linha Sheets("resolvidas").End(xlDown).Offset(1, 0).Paste"O Objeto não aceita eta propriedade ou método" Quote Link to comment Share on other sites More sharing options...
0 benzadeus Posted June 23, 2012 Report Share Posted June 23, 2012 Se a resposta abaixo não resolver seu problema, favor disponibilizar sua Pasta de Trabalho para download:Sub Teste() Application.EnableEvents = False Range("A1:AM1").Copy Destination:=Sheets("resolvidas").Range("A3") Sheets("resolvidas").Unprotect "12312" Sheets("resolvidas").End(xlDown).Offset(1, 0).Paste Range("S1:AM1").ClearContents Sheets("resolvidas").Protect "12312" Application.EnableEvents = True End Sub Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 23, 2012 Author Report Share Posted June 23, 2012 Deu o Mesmo erro.Link AKiO Problema ta quando tento usar o fomrulario de retorno, ele que ocasiona o erro.. Quote Link to comment Share on other sites More sharing options...
0 benzadeus Posted June 24, 2012 Report Share Posted June 24, 2012 A Pasta de Trabalho é muito grande. A operação dessa macro copia dados de qual Planilha para qual? Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 24, 2012 Author Report Share Posted June 24, 2012 Da planilha controle para a resolvida, quando usa o formulario do botao Retornar Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 28, 2012 Author Report Share Posted June 28, 2012 Prefere que eu dinimua a planilha deixando so a funcao que acusa erro? Quote Link to comment Share on other sites More sharing options...
0 benzadeus Posted June 28, 2012 Report Share Posted June 28, 2012 Desculpe a demora.Acredito que sua macro esteja funcionando somente uma vez porque toda vez que você usa o método Select para selecionar a Planilha resolvidas, o evento Worksheet_Change dela é executado e bloqueando-a:Private Sub Worksheet_Activate() protege End Sub Para evitar que essa rotina rode, altere a propriedade EnableEvents do objeto Application para falso, e restaure novamente seu estado ao término da execução da rotina. Um exemplo pode ser visto abaixo: Private Sub Exemplo() Dim lLast As Long Dim rng As Range If ActiveSheet.Name = "Controle" Then Application.EnableEvents = False With Sheets("resolvidas") 'Atenção: aqui deve ter um código para desbloquear a Planilha resolvidas Set rng = Cells(ActiveCell.Row, 1) lLast = .Cells(.Rows.Count, "A").End(xlUp).Row rng.Range("A1:AM1").Cut _ Destination:=.Cells(lLast + 1, "A").Range("B1:AM1") 'Aqui vai o código para bloquear novamente a Planilha resolvidas End With Application.EnableEvents = True End If End Sub Quote Link to comment Share on other sites More sharing options...
0 Gneccao Posted June 29, 2012 Author Report Share Posted June 29, 2012 Obrigado, mais uma vez, o problema era que ele realmente ativava o protege na celula toda vez que entrava..tirei isso e funcionou..obrigado. Quote Link to comment Share on other sites More sharing options...
Question
Gneccao
Boa Tarde, tenho uma planilha no Excel que quando um usuario aperta um botão, ele pega a linha selecionada e recorta ela e cola em uma outra aba.
O problema é que o Código retorna o Erro quando você clica a primeira vez, mas se você clicar novametne, ele roda sem apresentar problemas.
segue o Código Abaixo, ele apresenta erro, apenas as vezes.
ActiveCell.Range("A1:AM1").Select
Selection.Copy
Sheets("resolvidas").Select
Range("A3").Select
ActiveSheet.Unprotect "12312"
Application.EnableEvents = False
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell = valmax + 1
ActiveCell.Range("B1:AM1").Select
ActiveSheet.Paste
Sheets("Controle").Select
ActiveCell.Range("S1:AM1").Select
Selection.ClearContents
Link to comment
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.