IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[VBA-A]Fermer un fichier Acrobat


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut [VBA-A]Fermer un fichier Acrobat
    Bonjour à tous,
    Voici mon problème. Je crée un fichier pdf sans problème, je le renomme le déplace... mais je voudais le fermer et je n'y arrive avec aucun code.
    Quelqu'un peut-il m'aider ?

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    : il est ou ton code je ne le vois pas d'ici :

  3. #3
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Citation Envoyé par bbil
    : il est ou ton code je ne le vois pas d'ici :
    J'ai simplement essayer un close

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'ai simplement essayer un close
    et.... à la suite de quoi (un code, sans doute...)
    Tu n'as quand même pas écrit "close" tout seul ? (regarde dans l'aide en ligne ce que fait close et à quoi il s'applique)

  5. #5
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    J'ai écris ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function testdomi()
     
    Dim FileSystemObject As New FileSystemObject
    dates = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
     daten = Right("0" & Day(Date), 2) & Right("0" & Month(Date), 2) & Year(Date)
     datem = Year(Date) & Right("0" & Month(Date), 2)
     
    FileSystemObject.CopyFile "c:\data\temp\test.pdf", "C:\data\" & (datem) & "\" & (dates) & "\"  & Forms![report selection]![CmbCommodity] & "_" & (dates) & ".pdf", True
     
    FileSystemObject.DeleteFile "c:\data\temp\*.pdf"
     
    Shell ("C:\Program Files\Acrobat Reader\Reader\AcroRd32.exe C:\data\" & (datem) & "\" & (dates) & "\"  & Forms![report selection]![CmbCommodity] & "_" & (dates) & ".pdf")
    Maintenant je ne trouve rien qui puisse me permettre de de fermer le pdf ouvert

  6. #6
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Ha ben non, une fois que tu as ouvert Acrobat avec Shell, il vit sa vie.
    Tu peux éventuellement retrouver le process qui correspond, et le fermer. C'est un peu violent, je l'avoue...
    A moins qu'il n'existe une librairie VB(A) pour piloter Acrobat, mais je n'y crois pas trop...

  7. #7
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Citation Envoyé par Megaxel
    Ha ben non, une fois que tu as ouvert Acrobat avec Shell, il vit sa vie.
    Tu peux éventuellement retrouver le process qui correspond, et le fermer. C'est un peu violent, je l'avoue...
    A moins qu'il n'existe une librairie VB(A) pour piloter Acrobat, mais je n'y crois pas trop...
    Même si c'est pas très propre et qu'il faut kill le process ca me convient.

  8. #8
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Alors va-s-y!

    Non, sérieux, je ne sais pas le faire, mais j'ai vu plusieurs sujet sur ça dans ce forum, alors fais une petite recherche avancée, et tu vas trouver ton bonheur.

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    As-tu fait une recherche sur le forum ? Il me semble que le sujet a été traité.
    Je regarde mais fais une recherche sur le forum Visual Basic de ton côté "VBA and Acrobat"

    A+

  10. #10
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Citation Envoyé par ouskel'n'or
    As-tu fait une recherche sur le forum ? Il me semble que le sujet a été traité.
    Je regarde mais fais une recherche sur le forum Visual Basic de ton côté "VBA and Acrobat"

    A+
    Pour ouvrir oui mais pas pour fermer.

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bien, je crois que tu as la solution entièrement VBA dans le dernier message à cette adresse
    http://www.developpez.net/forums/vie...robat&start=15

    Bonne chance

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu utiliser sendKey..pour fermer l'application..;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MonApp
     
    Sub Ouvre()
     MonApp = Shell("notepad ")
    End Sub
     
    Sub Ferme()
      AppActivate MonApp, True
      SendKeys ("%{F4}") 'envoi altF4"
    End Sub

  13. #13
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Citation Envoyé par bbil
    tu peu utiliser sendKey..pour fermer l'application..;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MonApp
     
    Sub Ouvre()
     MonApp = Shell("notepad ")
    End Sub
     
    Sub Ferme()
      AppActivate MonApp, True
      SendKeys ("%{F4}") 'envoi altF4"
    End Sub
    Merci pour ton conseil:
    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Ferme()
      MonApp = Shell("C:\Program Files\Acrobat Reader\Reader\AcroRd32.exe")
      AppActivate MonApp, True
      SendKeys ("%{F4}") 'envoi altF4"
    End Sub
    Mais ca ne fonctionne pas

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'ai bien une méthode jmfienne, pas orthodoxe, mais fonctionnant :

    Tout en haut du code:
    puis, pour essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command1_Click()
       On Error Resume Next '---- pour le cas où...
       returnvalue = Shell("C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe") '---(chemin chez moi)
       Err.Clear ' et on rétablit le compteur dez erreurs à 0
       AppActivate returnvalue
    End Sub
    et alors, pour "jeter l'appli" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command2_Click()
      If returnvalue Then
        SendKeys ("%{F4}") 'envoi altF4"
      End If
    End Sub
    Pas orthodoxe, tout çà, mais marche bien chez moi...
    attention : ne pas changez le nom de returnvalue
    ne me demandez pas d'explications... je les cherche encore !

  15. #15
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Aie toujours pas la il me ferme mon mon acces à la place de acrobat

  16. #16
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    celà veut dire que access avait le focus et pas acrobat !

    essaye d'abord celà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Command2_Click() 
      If returnvalue Then 
        on error resume next  '==== pour le cas où acrobat aurait déjà le focus
        appactivate returnvalue     '<=======*   ajouté
       err.clear
        SendKeys ("%{F4}") 'envoi altF4" 
      End If 
    End Sub
    autre méthode :
    placer acrobat en objet Ole sur ta form et l'exciter ou le fermer à la demande

    Si celà non plus ne te convient pas, il te faudra alors "zigouiller" par API (à éviter si possible pour l'instant)

  17. #17
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Je ne sais pas si ça t'irait exactement, mais jette un petit coup d'oeil à ça:
    http://www.developpez.net/forums/vie...=liste+process

  18. #18
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    une version VB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function KillProcess(ByVal ProcessName As String) As Boolean
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process where name=' & ProcessName & "    '"
        For Each oproc In svc.execquery(sQuery)
            oproc.Terminate
        Next
        Set svc = Nothing
    End Function

  19. #19
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Par défaut
    Citation Envoyé par ThierryAIM
    une version VB6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function KillProcess(ByVal ProcessName As String) As Boolean
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process where name=' & ProcessName & "    '"
        For Each oproc In svc.execquery(sQuery)
            oproc.Terminate
        Next
        Set svc = Nothing
    End Function
    Rolala ca m'avait l'ai bien
    Mais je recois une automation error, je dois quand même juste changer "ProcessName" dans ton code?

  20. #20
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    slt,

    FAQ Access pour fermer un programme ouvert avec Shell :
    http://access.developpez.com/faq/?pa...tion#close_exe

Discussions similaires

  1. Comment ouvrir un fichier Acrobat à partir du VBA d'Excel?
    Par ac264 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/03/2010, 14h08
  2. {VBA Excel}Ouvrir copier et fermer plusieurs fichiers excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 26/06/2007, 09h52
  3. [VBA Excel] Fermer un fichier
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/10/2006, 13h37
  4. [VBA-E]fermer un fichier csv
    Par darkman10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/05/2006, 19h36
  5. [VBA-E]fermer les fichier exel en cour lors d'une ouverture
    Par fournier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo