Ir para conteúdo
Fórum Script Brasil
  • 0

Copiar dados de outra planilha


Renato Knupp

Pergunta

Pessoal estou com um problema, tenho duas planilhas que vão interagir uma com a outra, a idéia é a seguinte, eu tenho na planilha1 um botão que ao clicar ele abre a planilha2 copia o que está da célula A1 a B5, cola na planilha1 e fecha a planilha2.

Eu tentei usar esse código, mas não deu certo.

Private Sub cmdproc_Click()

Dim CAMINHO_ARQUIVO, As String

‘ o usuário informa onde está a planilha2

CAMINHO_ARQUIVO = Application.GetOpenFilename

Workbooks.Open Filename:=CAMINHO_ARQUIVO, UpdateLinks:=2, Notify:=False, ReadOnly:=False

Range("F8:F14").Select

Selection.Copy

Windows("Planilha1.xls").Activate

ActiveSheet.Paste

Windows(("Planilha2.xls").Activate

'fecha a janela sem pedir para salvar

'ActiveWindow.Close SaveChanges:=False

End Sub

Se alguém souber tambem como copiar essas informação sem que o usuário perceba que ele abriu um planilha e depois fechou.

Desde já obrigado.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Voce pode usar o codigo abaixo,

Private Sub cmdproc_Click()

Dim CAMINHO_ARQUIVO, As String

Application.ScreenUpdating = False

‘ o usuário informa onde está a planilha2

CAMINHO_ARQUIVO = Application.GetOpenFilename

Workbooks.Open Filename:=CAMINHO_ARQUIVO, UpdateLinks:=2, Notify:=False, ReadOnly:=False

Workbooks("Planilha2.xls").Worksheets("Plan1").Range("A1:B5").Copy _ Workbooks("Planilha1.xls").Worksheets("Plan1").Range("A1")

Workbooks("Planilha2.xls").Close SaveChanges:=False

End Sub

:ninja:

Editado por João.Neto
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado João Neto, consegui resolver meu problema acima.

Mas surgiu outra dúvida, ao usar a função Workbooks.Open, antes eu consigo verificar se o arquivo em questão já está aberto?

pois queria fazer o seguinte , se ele já estiver aberto eu apenas pegarei as informações que quero, mas se não estiver aberto eu abrirei e fecharei sem salvar.

Tem alguma função que verifica se a planilha já está aberta?

Editado por Renato Knupp
Link para o comentário
Compartilhar em outros sites

  • 0

Eu usaria um For Each:

Private Sub cmdproc_Click()

Dim CAMINHO_ARQUIVO As String

Dim w As Workbook

For Each w In Workbooks

If w.Name = "Planilha2.xls" Then

Workbooks("Planilha2.xls").Worksheets("Plan1").Range("A1:B5").Copy _

Workbooks("Planilha1.xls").Worksheets("Plan1").Range("A1")

Exit Sub

End If

Next w

Application.ScreenUpdating = False

' o usuário informa onde está a planilha2

CAMINHO_ARQUIVO = Application.GetOpenFilename

Workbooks.Open Filename:=CAMINHO_ARQUIVO, UpdateLinks:=2, Notify:=False, ReadOnly:=False

Workbooks("Planilha2.xls").Worksheets("Plan1").Range("A1:B5").Copy _

Workbooks("Planilha1.xls").Worksheets("Plan1").Range("A1")

Workbooks("Planilha2.xls").Close SaveChanges:=False

End Sub

Editado por João.Neto
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...