Ir ao conteúdo
  • Cadastre-se

Abrir planilha específica com macro Excel VBA


Posts recomendados

Bom dia,

Estou com um probleminha, não consigo resolvê-lo.

Já pesquisei aqui no fórum e no google, acabei não achando nada. É algo simples, espero que alguém possa me ajudar.

Tenho duas planilhas.

Vamos chamá-las de A e B.

A planilha A tem dois CommandButtons, o cmd1 e o cmd2.

Quero que o cmd1 chame o arquivo planilha B, abrindo no sheet1 e o cmd2 chame o arquivo planilha B, abrindo no sheet2.

Até agora eu fiz o seguinte:

Dim Xls As Object

Dim WkSheet As Object

Dim WkBook As Object

Private Sub CommandButton1_Click()

Set Xls = CreateObject("Excel.Application")

Set WkBook = Xls.Workbooks.Open("B.xls#Sheet1")

Set WkSheet = WkBook.ActiveSheet

Xls.Visible = True

End Sub

Private Sub CommandButton2_Click()

Set Xls = CreateObject("Excel.Application")

Set WkBook = Xls.Workbooks.Open("B.xls#Sheet2")

Set WkSheet = WkBook.ActiveSheet

Xls.Visible = True

End Sub

Dessa forma, ele abre o worksheet B, mas não encontra o Sheet1 ou Sheet2.

Se eu não colocar o "#SheetX", ele abre a planilha normalmente, mas não no sheet que eu quero.

Alguém pode me ajudar?:)

Link para o comentário
Compartilhar em outros sites

Bom dia,

sou iniciante em VB Excel portanto fiquei confuso com o código que você utilizou, criei o código abaixo com poucos conhecimentos que tenho, é mais simples mas creio que irei poder te ajudar.


Private Sub CommandButton1_Click()
Workbooks.Open ("C:\Documents and Settings\Administrador\Meus documentos\B.xls")
Worksheets("Plan1").Activate
End Sub


Private Sub CommandButton1_Click()
Workbooks.Open ("C:\Documents and Settings\Administrador\Meus documentos\B.xls")
Worksheets("Plan2").Activate
End Sub

Obs.:

"C:\Documents and Settings\Administrador\Meus documentos\" é o caminho onde sua planilha B está localizada.

Espero ter te ajudado, poste se o código funcionou!!!!

:D:D:D

Abraços!

Pedro Henrique B. C. de Souza

Link para o comentário
Compartilhar em outros sites

  • 8 anos depois...
  • 2 meses depois...

Tenho um problema parecido.

 

Fiz uma macro que se alimenta de diversas planilhas e só consigo rodar ela na minha máquina, pois o user das outras pessoas varia de máquina para máquina.

 

exp:

 

C:\Users\GilliardPacheco\Desktop\novo sistig\cartas\carta de colaboração.doc

C:\Users\Administrador\Desktop\novo sistig\cartas\carta de colaboração.doc

 

Existe alguma função que dê para inserir um nome genérico?

 

Link para o comentário
Compartilhar em outros sites

Sim! use a função Environ

 

Exemplo

 

Sub Teste_Path()
Dim msg

msg = "C:\Users\" & VBA.Environ$("USERNAME") & "\Desktop\novo sistig\cartas\carta de colaboração.doc" & VBA.vbCr
msg = msg & "C:\Users\" & VBA.Environ$("USERNAME") & "\Desktop\novo sistig\cartas\carta de colaboração.doc"

MsgBox msg

End Sub

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

Olá,

 

Eu estou com um problema relacionado a esse. Eu estou desenvolvendo um software em VB que lê dados de uma planilha do Excel e também alimenta essa planilha com outros dados. Ao iniciar um novo projeto, o usuário clica em um botão e o programa abre uma planilha "template" e salva com o nome que usuário digitou. Ao clicar no botão "Carregar", ao invés de iniciar um novo projeto o programa importa dados de uma planilha existente.

 

Só que se o usuário digitar um nome de projeto que não existe e clicar em "Carregar" o programa dá erro e fecha. Eu gostaria de poder cercar essa situação e fazer aparecer uma MsgBox dizendo "Projeto não encontrado" e o programa continuasse aberto.

 

Alguém pode me ajudar?

 

Agradeço.

 

Charley Rocha

Link para o comentário
Compartilhar em outros sites

Consegui resolver pessoal. Pra quem estiver enfrentando o mesmo problema, segue:

 

Basta colocar a instrução On Error ANTES da parte do código onde se prevê que possa acontecer um erro. Na verdade eu já imaginava que deveria usar essa instrução, mas estava colocando ela DEPOIS do código.

 

Se houver dúvida sobre a sintaxe pode-se consultar esse link, de onde eu obtive a solução:

 

http://www.macoratti.net/erros.htm

 

Há braços.

Link para o comentário
Compartilhar em outros sites

17 horas atrás, Charley Rocha disse:

Olá,

 

Eu estou com um problema relacionado a esse. Eu estou desenvolvendo um software em VB que lê dados de uma planilha do Excel e também alimenta essa planilha com outros dados. Ao iniciar um novo projeto, o usuário clica em um botão e o programa abre uma planilha "template" e salva com o nome que usuário digitou. Ao clicar no botão "Carregar", ao invés de iniciar um novo projeto o programa importa dados de uma planilha existente.

 

Só que se o usuário digitar um nome de projeto que não existe e clicar em "Carregar" o programa dá erro e fecha. Eu gostaria de poder cercar essa situação e fazer aparecer uma MsgBox dizendo "Projeto não encontrado" e o programa continuasse aberto.

 

Alguém pode me ajudar?

 

Agradeço.

 

Charley Rocha

 

 

Você pode usar um sistema de busca nos nomes existentes e colocar alguns IF's para ajudar.

adicionado 1 minuto depois
Em 25/05/2009 às 10:21, rovisilva disse:

Bom dia,

Estou com um probleminha, não consigo resolvê-lo.

Já pesquisei aqui no fórum e no google, acabei não achando nada. É algo simples, espero que alguém possa me ajudar.

Tenho duas planilhas.

Vamos chamá-las de A e B.

A planilha A tem dois CommandButtons, o cmd1 e o cmd2.

Quero que o cmd1 chame o arquivo planilha B, abrindo no sheet1 e o cmd2 chame o arquivo planilha B, abrindo no sheet2.

Até agora eu fiz o seguinte:

Dim Xls As Object

Dim WkSheet As Object

Dim WkBook As Object

Private Sub CommandButton1_Click()

Set Xls = CreateObject("Excel.Application")

Set WkBook = Xls.Workbooks.Open("B.xls#Sheet1")

Set WkSheet = WkBook.ActiveSheet

Xls.Visible = True

End Sub

Private Sub CommandButton2_Click()

Set Xls = CreateObject("Excel.Application")

Set WkBook = Xls.Workbooks.Open("B.xls#Sheet2")

Set WkSheet = WkBook.ActiveSheet

Xls.Visible = True

End Sub

Dessa forma, ele abre o worksheet B, mas não encontra o Sheet1 ou Sheet2.

Se eu não colocar o "#SheetX", ele abre a planilha normalmente, mas não no sheet que eu quero.

Alguém pode me ajudar?:)

 

Se puder colocar um exemplo seria mais simples...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...