Por favor, alguém conhece algum comando ou uma função VBA para fechar um arquivo específico do word, excel, etc., e um outro comando/função que feche todos os arquivos de um aplicativo, por exemplo todos do excel ou todos do word, etc., sem precisar citar nomes.
+3
sergiosdl
Alvaro Teixeira
lrossato
7 participantes
Fechar arquivo externo via VBA
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº1
Fechar arquivo externo via VBA
Olá Pessoal,
Por favor, alguém conhece algum comando ou uma função VBA para fechar um arquivo específico do word, excel, etc., e um outro comando/função que feche todos os arquivos de um aplicativo, por exemplo todos do excel ou todos do word, etc., sem precisar citar nomes.
Por favor, alguém conhece algum comando ou uma função VBA para fechar um arquivo específico do word, excel, etc., e um outro comando/função que feche todos os arquivos de um aplicativo, por exemplo todos do excel ou todos do word, etc., sem precisar citar nomes.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº2
Re: Fechar arquivo externo via VBA
Olá, bem vindo ao fórum.
Veja se ajuda:
http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
Ou
https://www.google.pt/#q=ms+access+vba+kill+process
Abraço
Veja se ajuda:
http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
Ou
https://www.google.pt/#q=ms+access+vba+kill+process
Abraço
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº3
Re: Fechar arquivo externo via VBA
Olá ahteixeira,
Obrigado pelas boas vindas.
Pelo que entendi o primeiro link é para abrir um arquivo executável e o segundo é para deletar.
Até já conheço o comando Kill no access para excluir arquivos, mas o que eu quero é apenas fechar.
Eu mencionei comando ou função quando criei este forum porque vou colocar no procedimento de evento "ao clicar" de um botão que criei no form.
Mesmo assim valeu.
Obrigado pelas boas vindas.
Pelo que entendi o primeiro link é para abrir um arquivo executável e o segundo é para deletar.
Até já conheço o comando Kill no access para excluir arquivos, mas o que eu quero é apenas fechar.
Eu mencionei comando ou função quando criei este forum porque vou colocar no procedimento de evento "ao clicar" de um botão que criei no form.
Mesmo assim valeu.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº4
Re: Fechar arquivo externo via VBA
Olá, não vai apagar o ficheiro.
A única forma que conheço "matar o processo" do Windows.
Ou seja, se for ao gestor de processos do Windows, vai verificar o(s) processo(s) abertos.
O que o primeiro exemplo faz é demonstração dos dois passos.
Abrir processo (ficheiro)
Fechar "matar" processo.
Caso pretenda fazer desta forma, terá de saber o nome do processo que pretende matar.
Ficamos aguardar alguma sugestão de outro colega.
Abraco
A única forma que conheço "matar o processo" do Windows.
Ou seja, se for ao gestor de processos do Windows, vai verificar o(s) processo(s) abertos.
O que o primeiro exemplo faz é demonstração dos dois passos.
Abrir processo (ficheiro)
Fechar "matar" processo.
Caso pretenda fazer desta forma, terá de saber o nome do processo que pretende matar.
Ficamos aguardar alguma sugestão de outro colega.
Abraco
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº5
Re: Fechar arquivo externo via VBA
Olá,
Por favor então posta o que devo escrever no procedimento do evento "ao clicar" para o botão que criei se eu quisesse por exemplo fechar o arquivo "c:\frequencia.xls" ?
Abç.
Por favor então posta o que devo escrever no procedimento do evento "ao clicar" para o botão que criei se eu quisesse por exemplo fechar o arquivo "c:\frequencia.xls" ?
Abç.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº6
Re: Fechar arquivo externo via VBA
Olá Luis Henrique,
Antes de tudo recomendo a leitura do n. 12 das regras do fórum em: https://www.maximoaccess.com/t48-regras-do-forum.
Espero que proceda ao ajuste.
Relativamente ao tópico, segue exemplo conforme solicitado.
O metodo utilizado é "terminar tarefa/kill task", obtemos o resultado pretendido, o entanto não está a fechar, mas sim "matar a tarefa".
Caso tenha mais que um ficheiro excel aberto, vai encerrar todos.
Se o ficheiro excel que se pretende fechar foi aberto pelo access, recomendo que seja aplicada a tecnica deste post:
http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
Abraço
Antes de tudo recomendo a leitura do n. 12 das regras do fórum em: https://www.maximoaccess.com/t48-regras-do-forum.
Espero que proceda ao ajuste.
Relativamente ao tópico, segue exemplo conforme solicitado.
O metodo utilizado é "terminar tarefa/kill task", obtemos o resultado pretendido, o entanto não está a fechar, mas sim "matar a tarefa".
Caso tenha mais que um ficheiro excel aberto, vai encerrar todos.
Se o ficheiro excel que se pretende fechar foi aberto pelo access, recomendo que seja aplicada a tecnica deste post:
http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
Abraço
- Anexos
- TerminarApp.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (18 Kb) Baixado 143 vez(es)
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº7
Re: Fechar arquivo externo via VBA
Olá Alvaro,
Acabo de ler a linha 12 que vc sugeriu das regras. Não entendi. Não escrevi nada em maiúsculo a não ser o título do tópico.
Peço desculpas. Na verdade me precipitei ontem quando refutei aquele link que vc postou.
À noite parei para analisar melhor aquele código e concluí que vc tinha toda razão. Ele serve sim para fechar processos (entenda-se aplicativos).
Para saber o nome do processo eu teclei o famoso control-alt-del. Abri o gerenciador de tarefas e na aba "processos" vi qual era o do excel e aí foi só substituir no código.
E agora cedo eu recebo o seu post para confirmar. Vc foi perfeito!
Bom, desta forma fica resolvida a segunda parte do tópico.
Fica faltando só um código, ou o que seja, para fechar um arquivo especificamente.
Obrigado
Abç.
Acabo de ler a linha 12 que vc sugeriu das regras. Não entendi. Não escrevi nada em maiúsculo a não ser o título do tópico.
Peço desculpas. Na verdade me precipitei ontem quando refutei aquele link que vc postou.
À noite parei para analisar melhor aquele código e concluí que vc tinha toda razão. Ele serve sim para fechar processos (entenda-se aplicativos).
Para saber o nome do processo eu teclei o famoso control-alt-del. Abri o gerenciador de tarefas e na aba "processos" vi qual era o do excel e aí foi só substituir no código.
E agora cedo eu recebo o seu post para confirmar. Vc foi perfeito!
Bom, desta forma fica resolvida a segunda parte do tópico.
Fica faltando só um código, ou o que seja, para fechar um arquivo especificamente.
Obrigado
Abç.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº8
Re: Fechar arquivo externo via VBA
Olá, obrigado pelo retorno, os utilizadores do fórum agradecem.
Quanto ao nº 12 é mesmo isso e só você é que podem alterar o titulo do tópico.
Entretanto, se está concluído, não se esqueça de dar o tópico como resolvido, veja link abaixo:
https://www.maximoaccess.com/t860-resolucao-de-topicos
Abraço
Quanto ao nº 12 é mesmo isso e só você é que podem alterar o titulo do tópico.
Entretanto, se está concluído, não se esqueça de dar o tópico como resolvido, veja link abaixo:
https://www.maximoaccess.com/t860-resolucao-de-topicos
Abraço
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº9
Re: Fechar arquivo externo via VBA
Olá,
O tópico ainda não foi resolvido.
Ainda falta uma parte.
Abç.
O tópico ainda não foi resolvido.
Ainda falta uma parte.
Abç.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº10
Re: Fechar arquivo externo via VBA
Olá, e que parte está a faltar, podemos ajudar?
Abraço
Abraço
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº11
Re: Fechar arquivo externo via VBA
Oi,
A primeira parte que é:
Fechar apenas um arquivo específico sem fechar todo o processo.
Abç.
A primeira parte que é:
Fechar apenas um arquivo específico sem fechar todo o processo.
Abç.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº12
Re: Fechar arquivo externo via VBA
Olá de novo, a única forma que conheço para fechar arquivo específico é se também for aberto pelo Access.
Pois assim o Acceess dispõe da informação do ficheiro que foi aberto e sabe qual fechar.
Ficamos aguardar se algum colega aqui do fórum apresenta outra ideia.
Abraço
Pois assim o Acceess dispõe da informação do ficheiro que foi aberto e sabe qual fechar.
Ficamos aguardar se algum colega aqui do fórum apresenta outra ideia.
Abraço
sergiosdl- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 143
Registrado : 04/12/2009
- Mensagem nº13
Re: Fechar arquivo externo via VBA
amigo eu finalizo com um arquivo externo.
Crie um arquivo VBS que ele poderá fechar inclusive o proprio access
No arquivo VBS coloque o codigo
dim escript, execu
Set escript = WScript.CreateObject("WScript.Shell")
set execu = escript.exec("c:\windows\system32\taskkill -U -F -im wp* ")
neste exemplo ele ira finalizar qualquer processo que se inicie com as letras wp
Abraços
Crie um arquivo VBS que ele poderá fechar inclusive o proprio access
No arquivo VBS coloque o codigo
dim escript, execu
Set escript = WScript.CreateObject("WScript.Shell")
set execu = escript.exec("c:\windows\system32\taskkill -U -F -im wp* ")
neste exemplo ele ira finalizar qualquer processo que se inicie com as letras wp
Abraços
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº14
Re: Fechar arquivo externo via VBA
Olá Sérgio, obridado pela dica.
Com o MaximoAccess estamos sempre aprender.
Vamos aguardar o retorno do colega.
Abraço
Com o MaximoAccess estamos sempre aprender.
Vamos aguardar o retorno do colega.
Abraço
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº15
Re: Fechar arquivo externo via VBA
Colegas,
Que show de bola este VBS. Não conhecia, mas pesquisei e consegui criar um.
Inseri nele, conforme proposto, o seguinte código:
dim escript, execu
Set escript = WScript.CreateObject("WScript.Shell")
set execu = escript.exec("c:\windows\system32\taskkill -U -F -im DP4-FREQUENCIA1.csv")
No lugar do wp* eu coloquei o nome do arquivo que quero fechar. Não fechou.
Até renomeei o meu arquivo para wp1 pensando que talvez o hífen no nome fosse o problema, mas tbém não fechou.
Abç.
Que show de bola este VBS. Não conhecia, mas pesquisei e consegui criar um.
Inseri nele, conforme proposto, o seguinte código:
dim escript, execu
Set escript = WScript.CreateObject("WScript.Shell")
set execu = escript.exec("c:\windows\system32\taskkill -U -F -im DP4-FREQUENCIA1.csv")
No lugar do wp* eu coloquei o nome do arquivo que quero fechar. Não fechou.
Até renomeei o meu arquivo para wp1 pensando que talvez o hífen no nome fosse o problema, mas tbém não fechou.
Abç.
sergiosdl- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 143
Registrado : 04/12/2009
- Mensagem nº16
Re: Fechar arquivo externo via VBA
Amigo
no local que estou no momento não consigo testar, mas você não deve colocar o nome do arquivo que esta aberto, e sim o nome do processo, por exemplo:
Um arquivo do Word chamado teste.docx.
para fecha-lo você deve fechar o Word que é o processo, logo seria o arquivo winword.exe
então modifique para o nome do processo que esta abrindo o seu arquivo, para verificar o nome do processo, utilize o tradicional CTRL + ALT + DEL para ver o nome dos processos
cuidado ao ultilizar * como eu postei no exemplo, você poderá fechar outros processos que de repente nem os conheça, mas são de utilização do sistema
Abraços
no local que estou no momento não consigo testar, mas você não deve colocar o nome do arquivo que esta aberto, e sim o nome do processo, por exemplo:
Um arquivo do Word chamado teste.docx.
para fecha-lo você deve fechar o Word que é o processo, logo seria o arquivo winword.exe
então modifique para o nome do processo que esta abrindo o seu arquivo, para verificar o nome do processo, utilize o tradicional CTRL + ALT + DEL para ver o nome dos processos
cuidado ao ultilizar * como eu postei no exemplo, você poderá fechar outros processos que de repente nem os conheça, mas são de utilização do sistema
Abraços
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº17
Re: Fechar arquivo externo via VBA
Olá Sérgio,
Acho que vc não pegou o tópico desde o começo.
Esta parte de fechar o processo a gente já resolveu.
Quando se fecha o processo se fecham todos os arquivos daquele aplicativo.
O que a gente quer agora é fechar só um determinado arquivo daquele processo.
Porém o nome do arquivo não aparece no gerenciador de tarefas.
Abç.
Acho que vc não pegou o tópico desde o começo.
Esta parte de fechar o processo a gente já resolveu.
Quando se fecha o processo se fecham todos os arquivos daquele aplicativo.
O que a gente quer agora é fechar só um determinado arquivo daquele processo.
Porém o nome do arquivo não aparece no gerenciador de tarefas.
Abç.
sergiosdl- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 143
Registrado : 04/12/2009
- Mensagem nº18
Re: Fechar arquivo externo via VBA
Meu Irmão
Peço desculpas, realmente não tinha me atentado a este ponto importante.
Fechando apenas o arquivo eu nunca fiz, mesmo porque fazendo manualmente(CTRL + ALT + DEL) eu nao consegui finalizar apenas um arquivo
Abraços
Peço desculpas, realmente não tinha me atentado a este ponto importante.
Fechando apenas o arquivo eu nunca fiz, mesmo porque fazendo manualmente(CTRL + ALT + DEL) eu nao consegui finalizar apenas um arquivo
Abraços
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº19
Re: Fechar arquivo externo via VBA
Sérgio,
No gerenciador de tarefas que aparece depois do ctrl-alt-del, dentro da aba "aplicativos" aparece no nome das tarefas.
O nome de cada arquivo aberto aparece ali.
Se desse pra fazer menção, usando um código, àquela tarefa especifica, daria pra fechar só aquele arquivo.
Abç.
No gerenciador de tarefas que aparece depois do ctrl-alt-del, dentro da aba "aplicativos" aparece no nome das tarefas.
O nome de cada arquivo aberto aparece ali.
Se desse pra fazer menção, usando um código, àquela tarefa especifica, daria pra fechar só aquele arquivo.
Abç.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº20
Re: Fechar arquivo externo via VBA
Colega,
Esta função já foi sugerida no início do tópico e ela funciona mesmo, mas não é isso que a gente quer.
A gente quer é fechar um único arquivo (.doc, .xls, .pdf, etc).
Abç.
Esta função já foi sugerida no início do tópico e ela funciona mesmo, mas não é isso que a gente quer.
A gente quer é fechar um único arquivo (.doc, .xls, .pdf, etc).
Abç.
Noobezinho- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4140
Registrado : 29/06/2012
- Mensagem nº21
Re: Fechar arquivo externo via VBA
Então veja aqui
Também irá precisar disso aqui
Não me interessei em testar, apena fica a dica
[ ]'s
Também irá precisar disso aqui
Não me interessei em testar, apena fica a dica
[ ]'s
.................................................................................
A pergunta que não quer calar:
Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
para enviar parte do projeto, não temos mais continuidade do tópico?
Crê que temos bolas de cristal ou está com medo que "roubemos" a
idéia/projeto dele?
Se é tão bom assim...
Ajude a ser ajudado:
Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
sem precisar procurar o mesmo.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº22
Re: Fechar arquivo externo via VBA
Olá Noob,
Antes de iniciar o tópico eu já havia pesquisado na Web buscando soluções.
Estes links que você postou servem para fechar a janela do aplicativo. Eu já tinha testado eles funcionam mesmo.
Mas eles nem sequer fecham o aplicativo e apenas ocultam as suas janelas da barra de status do windows.
Volto a dizer que queremos apenas fechar um único arquivo de um aplicativo.
Mesmo assim obrigado.
Abç.
Antes de iniciar o tópico eu já havia pesquisado na Web buscando soluções.
Estes links que você postou servem para fechar a janela do aplicativo. Eu já tinha testado eles funcionam mesmo.
Mas eles nem sequer fecham o aplicativo e apenas ocultam as suas janelas da barra de status do windows.
Volto a dizer que queremos apenas fechar um único arquivo de um aplicativo.
Mesmo assim obrigado.
Abç.
sergiosdl- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 143
Registrado : 04/12/2009
- Mensagem nº23
Re: Fechar arquivo externo via VBA
Realmente está um desafio
Acredito que o caminho é varrer na net procurando como fechar um arquivo pelo windows(prompt de comando), pra gente colocar isto no VBA
Abraços
Acredito que o caminho é varrer na net procurando como fechar um arquivo pelo windows(prompt de comando), pra gente colocar isto no VBA
Abraços
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº24
Re: Fechar arquivo externo via VBA
Olá Luiz Rossato, como está a situação!
Encontrou outra solução? Usou alguma das apresentadas?
Os utilizadores do fórum agradecem o retorno.
Abraço
Encontrou outra solução? Usou alguma das apresentadas?
Os utilizadores do fórum agradecem o retorno.
Abraço
walisilva- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 34
Registrado : 10/09/2015
- Mensagem nº25
Re: Fechar arquivo externo via VBA
Olá a todos!
Bem, eu sempre uso um CMD "Taskkill /im msaccess.exe /f" onde o "msaccess.exe" pode ser qualquer .exe que eu quiser.
Porém ele fecha todos abertos, não tem como especificar qual em específico, até porque pra isso eu teria que especificar o id do processo (PID) que não sei como automatizar.
Fica a dica ai para o amigo, também sugiro que pense bem o que quer fazer pois, pra finalizar um processo específico você tem que saber o id do processo, acredito que seja a única forma, mas aí já é um outro problema, talvez precise digitar manualmente o PID.
Abçs
Bem, eu sempre uso um CMD "Taskkill /im msaccess.exe /f" onde o "msaccess.exe" pode ser qualquer .exe que eu quiser.
Porém ele fecha todos abertos, não tem como especificar qual em específico, até porque pra isso eu teria que especificar o id do processo (PID) que não sei como automatizar.
Fica a dica ai para o amigo, também sugiro que pense bem o que quer fazer pois, pra finalizar um processo específico você tem que saber o id do processo, acredito que seja a única forma, mas aí já é um outro problema, talvez precise digitar manualmente o PID.
Abçs
.................................................................................
--
Walison Silva
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº26
Re: Fechar arquivo externo via VBA
Olá Walison, obrigado por mais uma dica.
Ficamos (continuamos) aguardar o retorno do Luiz Rossato que abriu o tópico.
Abraço
Ficamos (continuamos) aguardar o retorno do Luiz Rossato que abriu o tópico.
Abraço
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº27
Re: Fechar arquivo externo via VBA
Olá Pessoal,
Infelizmente não pude utilizar nenhuma opção dos colegas. Repiso que o que eu queria era fechar um arquivo específico do excel sem fechar outros que estão aberto do mesmo aplicativo, ou seja, n~]ao quero fechar o processo, apenas um arquivo.
Tem como encerrar o tópico sem solução?
Infelizmente não pude utilizar nenhuma opção dos colegas. Repiso que o que eu queria era fechar um arquivo específico do excel sem fechar outros que estão aberto do mesmo aplicativo, ou seja, n~]ao quero fechar o processo, apenas um arquivo.
Tem como encerrar o tópico sem solução?
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº28
Re: Fechar arquivo externo via VBA
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº29
Re: Fechar arquivo externo via VBA
Colega,
Pelo que li é melhor deixar aberto, pois não foi resolvido e quem entrar não vai achar solução para o que procura.
Abç.
Pelo que li é melhor deixar aberto, pois não foi resolvido e quem entrar não vai achar solução para o que procura.
Abç.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
- Mensagem nº30
Re: Fechar arquivo externo via VBA
Olá Luiz, sou da opinião de fechar o tópico.
Pode colocar uma mensagem final de agradecimento aos intervenientes e que vai dar o tópico como resolvido apesar de não ter obtido uma solução.
No entanto deixo ao seu critério, podendo também ficar aberto.
Abraço
Pode colocar uma mensagem final de agradecimento aos intervenientes e que vai dar o tópico como resolvido apesar de não ter obtido uma solução.
No entanto deixo ao seu critério, podendo também ficar aberto.
Abraço
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº31
Re: Fechar arquivo externo via VBA
Olá!
Uma alternativa é passar o foco para janela do arquivo aberto e então fechar com o ALT + F4
Supondo que eu tenha um arquivo de nome Carga.xlsx e na janela Excel temos escrito "Carga.xlsx - excel"
call fncFecharApp("Carga.xlsx - excel")
Nota: se seu Access for versão 2007 ou inferior, retire o Ptrsafe da API
Nota: Abra mais de um arquivo excel para testar.
Aguardamos
Uma alternativa é passar o foco para janela do arquivo aberto e então fechar com o ALT + F4
Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Sub fncFecharApp(NomeJanela As String)
Dim CloseIt As Long
Dim ws As Object
DoEvents
CloseIt = FindWindow(vbNullString, NomeJanela)
SetForegroundWindow CloseIt
Call fncAguardar(50)
Set ws = CreateObject("WScript.shell")
ws.SendKeys "%{f4}"
Set ws = Nothing
End Sub
Public Sub fncAguardar(lngMilesegundos&)
Dim varStart
varStart = Timer 'Tempo inicial
Do While Timer < varStart + (lngMilesegundos / 1000)
DoEvents 'Libera outros processos
Loop
End Sub
Supondo que eu tenha um arquivo de nome Carga.xlsx e na janela Excel temos escrito "Carga.xlsx - excel"
call fncFecharApp("Carga.xlsx - excel")
Nota: se seu Access for versão 2007 ou inferior, retire o Ptrsafe da API
Nota: Abra mais de um arquivo excel para testar.
Aguardamos
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº32
Re: Fechar arquivo externo via VBA
Olá,
Copiei todo o conteúdo dentro de um módulo.
Porém está dando erro ao copiar esta linha:
Public Sub fncFecharApp(cópia de saldo lp dez 2015 dp.xlsx - microsoft excel As String)
Coloquei aspas no nome da janela mas ainda continua com erro:
Public Sub fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel" As String)
Por favor verifique e me retorne
Abç.
Copiei todo o conteúdo dentro de um módulo.
Porém está dando erro ao copiar esta linha:
Public Sub fncFecharApp(cópia de saldo lp dez 2015 dp.xlsx - microsoft excel As String)
Coloquei aspas no nome da janela mas ainda continua com erro:
Public Sub fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel" As String)
Por favor verifique e me retorne
Abç.
Noobezinho- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4140
Registrado : 29/06/2012
- Mensagem nº33
Re: Fechar arquivo externo via VBA
Luiz
Isso fica na função:
Public Sub fncFecharApp(NomeJanela As String)
O que está dentro dos parênteses chama-se argumento,
nesse caso, o argumento diz que a variável NomeJanela é string
Para chamar esse função ali de cima, tem que fazer como o Avelino colocou:
call fncFecharApp("Carga.xlsx - excel")
Que no teu caso ficará:
call fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel")
[ ]'s
Isso fica na função:
Public Sub fncFecharApp(NomeJanela As String)
O que está dentro dos parênteses chama-se argumento,
nesse caso, o argumento diz que a variável NomeJanela é string
Para chamar esse função ali de cima, tem que fazer como o Avelino colocou:
call fncFecharApp("Carga.xlsx - excel")
Que no teu caso ficará:
call fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel")
[ ]'s
.................................................................................
A pergunta que não quer calar:
Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
para enviar parte do projeto, não temos mais continuidade do tópico?
Crê que temos bolas de cristal ou está com medo que "roubemos" a
idéia/projeto dele?
Se é tão bom assim...
Ajude a ser ajudado:
Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
sem precisar procurar o mesmo.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº34
Re: Fechar arquivo externo via VBA
Noobezinho,
Eu entendi isso.
Para testar eu criei um formulário e coloquei um botão para chamar a função, no evento ao clicar:
call fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel")
O erro está na hora de declarar a função no módulo.
Eu entendi isso.
Para testar eu criei um formulário e coloquei um botão para chamar a função, no evento ao clicar:
call fncFecharApp("cópia de saldo lp dez 2015 dp.xlsx - microsoft excel")
O erro está na hora de declarar a função no módulo.
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº35
Re: Fechar arquivo externo via VBA
Qual é a versão do seu Access ?
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
walisilva- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 34
Registrado : 10/09/2015
- Mensagem nº36
Re: Fechar arquivo externo via VBA
- Código:
taskkill /f /FI "windowtitle eq nomedoxls"
Onde nomedoxls é o nome do seu arquivo que quando é aberto pelo excel, assume o titulo da janela. Com esse código você pode matar qualquer processo apenas com o nome da janela.
Acho que com isso resolve o seu problema.
-- João 3:16
.................................................................................
--
Walison Silva
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº37
Re: Fechar arquivo externo via VBA
Walison, leia o tópico. A questão final aqui é ter uma solução sem matar o processo.
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº38
Re: Fechar arquivo externo via VBA
Meu access é 2010
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº39
Re: Fechar arquivo externo via VBA
Segue o arquivo exemplo.
Aguardamos
Aguardamos
- Anexos
- rossato.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (24 Kb) Baixado 59 vez(es)
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
Noobezinho- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4140
Registrado : 29/06/2012
- Mensagem nº40
Re: Fechar arquivo externo via VBA
Avelino
Não funfou, tentei com o Excel e MsAccess e não foi.
Usando o windows 7 -ms Access 2010.
Com exceção da API findWindow, todas as outras pedem o nome de classe.
Será que realmente tem API que o windows 7 não reconhece?
A exemplo disso é a API SetMessage(), onde nos fórum em inglês
dizem isso.
Não funfou, tentei com o Excel e MsAccess e não foi.
Usando o windows 7 -ms Access 2010.
Com exceção da API findWindow, todas as outras pedem o nome de classe.
Será que realmente tem API que o windows 7 não reconhece?
A exemplo disso é a API SetMessage(), onde nos fórum em inglês
dizem isso.
.................................................................................
A pergunta que não quer calar:
Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
para enviar parte do projeto, não temos mais continuidade do tópico?
Crê que temos bolas de cristal ou está com medo que "roubemos" a
idéia/projeto dele?
Se é tão bom assim...
Ajude a ser ajudado:
Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
sem precisar procurar o mesmo.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº41
Re: Fechar arquivo externo via VBA
Avelino,
Tirei um print da tela (excel ao fundo) pra vc ver que eu coloquei exatamente o nome da tela e não foi.
Tirei um print da tela (excel ao fundo) pra vc ver que eu coloquei exatamente o nome da tela e não foi.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº42
Re: Fechar arquivo externo via VBA
Agora foi.
Por favor dá uma olhada.
Por favor dá uma olhada.
- Anexos
- rossato.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (266 Kb) Baixado 31 vez(es)
joaquim.oliveira903 gosta desta mensagem
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº43
Re: Fechar arquivo externo via VBA
Pessoal,
17:30h tenho que ir embora.
Estou sem internet em casa.
Se não conseguirmos resolver até esta hora, na segunda a gente continua.
Abç.
17:30h tenho que ir embora.
Estou sem internet em casa.
Se não conseguirmos resolver até esta hora, na segunda a gente continua.
Abç.
Avelino Sampaio- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3900
Registrado : 04/04/2010
- Mensagem nº44
Re: Fechar arquivo externo via VBA
Rossato,
atente para os dois espaços existentes, ao invés de um, após a extensão xls.
peso ideal.xlsdois espaços[Modo de Compatibilidade] - Microsoft Excel
Nobezinho,
estou rodando aqui no Windows 7 com Access 2013. Rodei também no Access 2007 com Windows 7.
Aguardamos
atente para os dois espaços existentes, ao invés de um, após a extensão xls.
peso ideal.xlsdois espaços[Modo de Compatibilidade] - Microsoft Excel
Nobezinho,
estou rodando aqui no Windows 7 com Access 2013. Rodei também no Access 2007 com Windows 7.
Aguardamos
.................................................................................
Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces
Clique AQUI e analise o custo beneficio do material oferecido.
lrossato- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 33
Registrado : 25/10/2013
- Mensagem nº45
Re: Fechar arquivo externo via VBA
Avelino,
Coloquei os dois espaços.
To mandando a planilha e o resultado pra vc analisar.
Coloquei os dois espaços.
To mandando a planilha e o resultado pra vc analisar.
- Anexos
- peso ideal.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (230 Kb) Baixado 28 vez(es)
joaquim.oliveira903- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11
Registrado : 19/04/2016
- Mensagem nº46
Sensacional esse código
lrossato
Sensacional esse código, fiz uma pequena alteração e consigo fechar qualquer aplicativo. Muito legal!
Bastou eu alterar a caixa de endereço para uma caixa de combinação e cadastrar algums arquivos com extensão e pronto. Ele fecha qualquer arquivo
bounce: Parabéns!!
vou postar o anexo
Créditos aos colegas que postaram o arquivo e código
Sensacional esse código, fiz uma pequena alteração e consigo fechar qualquer aplicativo. Muito legal!
Bastou eu alterar a caixa de endereço para uma caixa de combinação e cadastrar algums arquivos com extensão e pronto. Ele fecha qualquer arquivo
bounce: Parabéns!!
vou postar o anexo
Créditos aos colegas que postaram o arquivo e código
- Anexos
- rossato.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (161 Kb) Baixado 40 vez(es)
» [Resolvido]Fechar banco de dados externo antes de exportar uma tabela para o mesmo
» [Resolvido]Fechar arquivo em VB sem fechar Access 2003
» Botão para anexar e imprimir arquivo externo
» [Resolvido]Abrir arquivo externo ao sistema com extensão .tif
» [Resolvido]Excluir arquivo externo via VBA no Access 2003
» [Resolvido]Fechar arquivo em VB sem fechar Access 2003
» Botão para anexar e imprimir arquivo externo
» [Resolvido]Abrir arquivo externo ao sistema com extensão .tif
» [Resolvido]Excluir arquivo externo via VBA no Access 2003