Compartilhar via

Excel - botão salvar - erro em metodo select

Anônima
2017-06-03T14:29:57+00:00

Prezados,

Tenho um formulário, na Plan3, que digito os dados nas textboxes para salva-as na Plan2.

Então os dados sã copiados para a Plan1.

Para tal, estava usando o código abaixo, que funcionava, onde as linhas de código que estão comentadas,

são as tentativas de formas diferentes, que fazem dar o mesmo erro na seção/linha que está em negrito:

Erro 1004 - O método select da classe range falhou.

e se trocar select por activate, dá o mesmo erro, porém com activate no lugar de select.

Public Sub salvar()

On Error Resume Next

Dim nprot As Variant

'Dim datapedido, dataresol, fimprazo As Date

Dim datapedido, dataresol, fimprazo As String

Dim assuntopedido, nomerequerente, lainlai, endresidencia, endbairro, _

destint, destext, acomp, acomp2, _

acomp3, acomp4, acomp5 As String

Dim fixo, cel As String

' controles principais ativados

nprot = Plan3.txtnumprotocolo

datapedido = Plan3.txtentradapedido

assuntopedido = Plan3.txtassunto

lainlai = Plan3.txtlai

fimprazo = Plan3.txtfimprazo

nomerequerente = Plan3.txtrequerente

endresidencia = Plan3.txtendereco

endbairro = Plan3.txtbairro

fixo = Plan3.txtfonefixo

cel = Plan3.txtcelular

destint = Plan3.txtdestinoint

destext = Plan3.txtdestinoext

dataresol = Plan3.txtdataresolucao

acomp = Plan3.txtacompanhamento

' controles desativados que só funcionarão se ativar a checkbox inserir acompanhamentos.

acomp2 = Plan3.txtacompanhamento2

acomp3 = Plan3.txtacompanhamento3

acomp4 = Plan3.txtacompanhamento4

acomp5 = Plan3.txtacompanhamento5

Plan3.txtacompanhamento2.Enabled = False

Plan3.txtacompanhamento3.Enabled = False

Plan3.txtacompanhamento4.Enabled = False

Plan3.txtacompanhamento5.Enabled = False

Dim molde As Worksheet

Set molde = Worksheets("Molde_botao_novo")

'campos que serão inseridos.

'Criação objeto worksheets

'Plan2.Activate

'Worksheets("Molde_botao_novo").Activate

With molde

'molde.Activate

.Activate

'Plan2.Range("A1:S1").ClearContents

'molde.Range("A1:S1").ClearContents

.Range("A1:S1").ClearContents

.Range("B1").Select

'molde.Range("B1").Select

'Plan2.Range("B1").Activate

'Worksheets("Molde_botao_novo").Range("B1").Select

ActiveCell.Value = nprot

.Range("C1").Select

'molde.Range("C1").Select

'Plan2.Range("C1").Activate

'Worksheets("Molde_botao_novo").Range("C1").Activate

ActiveCell.Value = datapedido

.Range("D1").Select

'molde.Range("D1").Select

'Plan2.Range("D1").Activate

'Worksheets("Molde_botao_novo").Range("D1").Activate

ActiveCell.Value = assuntopedido

.Range("E1").Select

'molde.Range("E1").Select

'Plan2.Range("E1").Activate

'Worksheets("Molde_botao_novo").Range("E1").Activate

ActiveCell.Value = lainlai

.Range("F1").Select

'molde.Range("F1").Select

'Plan2.Range("F1").Activate

'Worksheets("Molde_botao_novo").Range("F1").Activate

ActiveCell.Value = fimprazo

.Range("G1").Select

'molde.Range("G1").Select

'Plan2.Range("G1").Activate

'Worksheets("Molde_botao_novo").Range("G1").Activate

ActiveCell.Value = nomerequerente

.Range("H1").Select

'molde.Range("H1").Select

'Plan2.Range("H1").Activate

'Worksheets("Molde_botao_novo").Range("H1").Activate

ActiveCell.Value = endresidencia

.Range("I1").Select

'molde.Range("I1").Select

'Plan2.Range("I1").Activate

'Worksheets("Molde_botao_novo").Range("I1").Activate

ActiveCell.Value = endbairro

.Range("J1").Select

'molde.Range("J1").Select

'Plan2.Range("J1").Activate

'Worksheets("Molde_botao_novo").Range("J1").Activate

ActiveCell.Value = fixo

.Range("K1").Select

'molde.Range("K1").Select

'Plan2.Range("K1").Activate

'Worksheets("Molde_botao_novo").Range("K1").Activate

ActiveCell.Value = cel

.Range("L1").Select

'molde.Range("L1").Select

'Plan2.Range("L1").Activate

'Worksheets("Molde_botao_novo").Range("L1").Activate

ActiveCell.Value = destint

.Range("M1").Select

'molde.Range("M1").Select

'Plan2.Range("M1").Activate

'Worksheets("Molde_botao_novo").Range("M1").Activate

ActiveCell.Value = destext

.Range("N1").Select

'molde.Range("N1").Select

'Plan2.Range("N1").Activate

'Worksheets("Molde_botao_novo").Range("N1").Activate

ActiveCell.Value = dataresol

.Range("O1").Select

'molde.Range("O1").Select

'Plan2.Range("O1").Activate

'Worksheets("Molde_botao_novo").Range("O1").Activate

ActiveCell.Value = acomp

'campos que serão inseridos, quando houver dados para eles

.Range("P1").Select

'molde.Range("P1").Select

'Plan2.Range("P1").Activate

'Worksheets("Molde_botao_novo").Range("P1").Activate

ActiveCell.Value = acomp2

.Range("Q1").Select

'molde.Range("Q1").Select

'Plan2.Range("Q1").Activate

'Worksheets("Molde_botao_novo").Range("Q1").Activate

ActiveCell.Value = acomp3

.Range("R1").Select

'molde.Range("R1").Select

'Plan2.Range("R1").Activate

'Worksheets("Molde_botao_novo").Range("R1").Activate

ActiveCell.Value = acomp4

.Range("S1").Select

'molde.Range("S1").Select

'Plan2.Range("S1").Activate

'Worksheets("Molde_botao_novo").Range("S1").Activate

ActiveCell.Value = acomp5

End With

' apagar os dados das caixas de texto

Plan3.txtnumprotocolo = ""

Plan3.txtentradapedido = ""

Plan3.txtassunto = ""

Plan3.txtlai = ""

Plan3.txtfimprazo = ""

Plan3.txtrequerente = ""

Plan3.txtendereco = ""

Plan3.txtbairro = ""

Plan3.txtfonefixo = ""

Plan3.txtcelular = ""

Plan3.txtdestinoint = ""

Plan3.txtdestinoext = ""

Plan3.txtdataresolucao = ""

Plan3.txtacompanhamento = ""

Plan3.txtacompanhamento2 = ""

Plan3.txtacompanhamento3 = ""

Plan3.txtacompanhamento4 = ""

Plan3.txtacompanhamento5 = ""

' copiar os dados da plan2 para a plan1

Dim x As Long

x = Plan1.UsedRange.Rows.Count

Plan2.Range("A1:S1").Copy Destination:=Plan1.Range("A" & x)

Plan1.Select

Plan3.Visible = xlSheetHidden 'xlSheetVisible - xlSheetHidden

Call modplan1.atualizar_planilha

ActiveWorkbook.Save

MsgBox "Dados gravados com sucesso!", vbOKOnly, "Sucesso"

End Sub

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
{count} votos
Resposta aceita pelo autor da pergunta
  1. Anônima
    2017-06-07T23:37:57+00:00

    Olá SauloFiori da Silva, tudo bem? 

    Dando continuidade aos procedimentos.

    Neste caso, recomendo que você poste no fórum do TECHNET / MSDNque é um fórum dedicado a tratar deste tipo de questão:

    Se a resposta ajudou de alguma forma, por favor, clique em “Resolvi meu problema” localizado logo abaixo desta mensagem, caso a sua dúvida não tenha sido solucionada, por favor, poste novamente.   

    Espero ter ajudado, até mais!

    0 comentários Sem comentários

3 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2017-06-05T20:10:09+00:00

    Olá, SauloFiori da Silva, tudo bem?     

    Seja bem-vindo à Comunidade Microsoft.

     Nesse caso sugiro que siga as orientações da documentação abaixo como possível solução:

     https://support.microsoft.com/pt-br/help/832166/you-receive-a-run-time-error-1004-error-message-when-you-make-changes-to-legend-entries-in-an-chart-in-excel

    Se a resposta ajudou de alguma forma, por favor, clique em “Resolvi meu problema” localizado logo abaixo desta mensagem, caso a sua dúvida não tenha sido solucionada, por favor, poste novamente.   

    Espero ter ajudado, até mais!

    0 comentários Sem comentários
  2. Anônima
    2017-06-06T02:27:29+00:00

    Olá Eliakim,

    Muito agradecido por sua atenção. Mas já descobri a causa do problema.

    O problema é que a Plan2 estava oculta, e de alguma forma, o VBA não aceita executar seleção e ativação de uma planilha que esteja oculta (xlsheetHidden), por isso tive de informar o código para desocultar e em seguida ocultar novamente.

    Se tiver alguma forma mais correta de resolver o erro deste código, até mesmo como executar instruções que uma planilha oculta não faça, fico agradecido em saber.

    obrigado.

    0 comentários Sem comentários
  3. Anônima
    2017-06-08T01:58:45+00:00

    obrigado.

    0 comentários Sem comentários