Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro 1004 - copy/paste

Estou tentando selecionar os dados de uma linha de uma sheet, usar copy ou cut e inserir esses dados em outra sheet conforme certa condição. Contudo, toda vez que tento realizar o procedimento, com qualquer condição, me retorna o erro 1004 definição de aplicativo ou objeto.

Sub caards()
    Worksheets("List").Activate
    Range("a2").Select
    Do While ActiveCell <> ""
        If ActiveCell = "Azul" Then
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Azul").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        ElseIf ActiveCell = "Vermelho" Then
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Vermelho").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        ElseIf ActiveCell = "Preto" Then
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Preto").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        ElseIf ActiveCell = "Verde" Then
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Verde").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        ElseIf ActiveCell = "Branco" Then
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Branco").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        Else
            Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 4)).Copy
            Worksheets("Incolor").Activate
            Range("a1048576").End(xlUp).Offset(1, 0).Select
            ActiveCell.PasteSpecial xlPasteAll
        End If
        Worksheets("List").Activate
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub

No debug o erro está dando entre as linhas :

Range("a1048576").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial xlPasteAll
3 respostas
solução!

Oi Teresa tudo bem?

Não recomendo usar o copy paste porque dá erro se tiver alguma célula mesclada na planilha de destino (recomendo verificar) e também que não dá para rodar várias macros ao mesmo tempo. E também nem dá pra trabalhar direito sem poder usar a área de transferência.

Recomendo usar códigos tipo:

Worksheets("List").Activate
linha=2
While Cells(linha,1)<>""
    Worksheets("Azul").Cells(linha,1)=Cells(linha,1)
    Worksheets("Vermelho").Cells(linha,1)=Cells(linha,1)
    Worksheets("Preto").Cells(linha,1)=Cells(linha,1)
    Worksheets("Branco").Cells(linha,1)=Cells(linha,1)
    Worksheets("Verde").Cells(linha,1)=Cells(linha,1)
    Worksheets("Incolor").Cells(linha,1)=Cells(linha,1)
    linha=linha+1
    DoEvents
Wend

Aliás esses cards são de magic né ? Quando era solteiro podia gastar todo meu salário comprando cartas.

Espero ter ajudado!!!

Muito obrigada pela ajuda ! Consegui ter uma boa ideia de como resolver o erro.São cartas de Magic sim :D estou tentando montar um organizador de coleção ;)

Disponha e bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software