- Este tópico contém 3 respostas, 2 utilizadores e foi actualizado pela última vez há 12 anos, 6 meses por Anónimo.
-
AutorArtigos
-
-
9 de Junho de 2012 às 8:11 #1097AnónimoInactivo
olá pessoal
hoje é a minha vez de colocar uma questão!!
necessito um código para fechar um determinado ficheiro que se encontra aberto em pdf ou que feche o adobe, se o código fechar o adobe, penso que terá de ter em conta a versão, isso não me é muito favorável visto que a aplicação que estou a construir terá de funcionar em qualquer pc.
outros dados:
o nome do ficheiro é sempre o mesmo.
o meu procedimento cria um ficheiro pdf (um relatório), se o utilizador que irá utilizar a aplicação não fechar o pdf anteriormente aberto dará erro, eu tenho o problema contornado com um tratamento de erro em que diz ao utilizador que para produzir novo relatório terá de fechar o anterior mas gostaria de ao produzir novo que fecha-se o anterior (que tem o mesmo nome), evitava trabalho desnecessário por parte do utilizador.
quando o utilizador produz novo relatório é porque o anterior (que pode ainda estar aberto) já está obsoleto.
vg-excel-gest
victor gamboa
vg-excel-gest.blogspot.com/
http://www.youtube.com/user/vgexcelgest2?feature=mhum -
25 de Junho de 2012 às 17:14 #1885AnónimoInactivo
ficou faltando apenas a parte de fechar o pdf já aberto, fiz várias tentativas, mas sem sucesso.
sub imprimir_pdf_verificando()
‘verifica se o arquivo está aberto ou fechado e realiza a macro desejada
if not isfileopen(“c:teste.pdf”) then
‘macro se arquivo estiver fechado
with activesheet
.exportasfixedformat _
type:=xltypepdf, _
filename:=”c:teste.pdf”, _
openafterpublish:=true
end withelse
‘macro se arquivo estiver aberto
msgbox (“arquivo aberto”)
‘ apenas chama o arquivo
shell “explorer c:teste.pdf”‘faltou a programacao para fechar o arquivo
‘ close (“c:teste.pdf”) não é isso.imprimir_pdf_verificando
end if
end sub
‘_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
‘ esta função é necessária para o excel reconhecer arquivos já abertos dentro do sistema.
function isfileopen(filename as string)
dim ifilenum as long
dim ierr as longon error resume next
ifilenum = freefile()
open filename for input lock read as #ifilenum
close ifilenum
ierr = err
on error goto 0select case ierr
case 0: isfileopen = false
case 70: isfileopen = true
case else: error ierr
end selectend function
-
25 de Junho de 2012 às 18:27 #1886AnónimoInactivo
agora simm !!!! espero ter ajudado … avise se funcionar…
sub imprimir_pdf_verificando()
‘verifica se o arquivo está aberto ou fechado e realiza a macro desejada
if not isfileopen(“c:teste.pdf”) then
‘macro se arquivo estiver fechado
with activesheet
.exportasfixedformat _
type:=xltypepdf, _
filename:=”c:teste.pdf”, _
openafterpublish:=true
end withelse
‘macro se arquivo estiver aberto
taskid = shell(“c:program filesadobereader 10.0readeracrord32.exe c:teste.pdf”, vbnormalfocus)
application.wait now() + timeserial(0, 0, 2)
application.sendkeys “%{f4}”, truewith activesheet
.exportasfixedformat _
type:=xltypepdf, _
filename:=”c:teste.pdf”, _
openafterpublish:=true
end withend if
end sub
‘_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
‘ esta função é necessária para o excel reconhecer arquivos já abertos dentro do sistema.
function isfileopen(filename as string)
dim ifilenum as long
dim ierr as longon error resume next
ifilenum = freefile()
open filename for input lock read as #ifilenum
close ifilenum
ierr = err
on error goto 0select case ierr
case 0: isfileopen = false
case 70: isfileopen = true
case else: error ierr
end selectend function
-
25 de Junho de 2012 às 21:03 #1098AnónimoInactivo
obrigado, assim que testar retorno feedback.
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.