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 :

Ouverture d'un fichier après sélection avec FileDialog [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant en Gestion
    Inscrit en
    Mars 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2014
    Messages : 40
    Points : 45
    Points
    45
    Par défaut Ouverture d'un fichier après sélection avec FileDialog
    Bonjour à tous,

    Après avoir sélectionné un fichier en passant par filedialog (voir code ci dessous),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set SelectFichier = Application.FileDialog(msoFileDialogFilePicker)
    With SelectFichier
        .AllowMultiSelect = False
        .InitialFileName = RepertoireBASE & "\DOCUMENTAIRE"
        .Title = nomDOSSIERencours & " - État des documents transmis et stockés"
        .ButtonName = "Ouverture FICHIER"
    End With

    J'aimerai pouvoir ouvrir ce fichier sélectionné, quelque soit son format (xlsx, docx, pdf, …) à partir d'un click du bouton via une commande simple. J'ai fait quelques tentatives infructueuses avec '.execute' (exemples si dessous).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        If SelectFichier.Show = -1 Then
        adresseDOCUMENTsource = SelectFichier.SelectedItems(1) 'Adresse du document
     
        'SelectFichier.Execute
        'SelectFichier.SelectedItems(1).Execute
     
        End If


    Merci d'avance pour votre assistance.
    J'ai confiance car je sais que quelque part, quelqu'un sait …
    Unlucky Luke

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Question éculée.

    La FAQ :

    https://access.developpez.com/faq/?p...n#shellexecute

    ou une recherche dans le forum.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant en Gestion
    Inscrit en
    Mars 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2014
    Messages : 40
    Points : 45
    Points
    45
    Par défaut
    Merci Loufab !

    J'ai réussi à faire une synthèse des nombreux éléments de code offerts dans les FAQ pour arriver au résultat que j'espérais (soit le + simple possible)

    Pour tous et pour info voici ce que j'ai concocté et qui, pour l'instant, fonctionne à merveille:
    Problématique de départ : Ouvrir directement tous les fichiers à partir de leur chemin complet et ce quelque que soit leurs extensions

    Fonction dans le module (sous 64bits):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Public Declare PtrSafe Function ShellExecute _
        Lib "shell32.dll" _
        Alias "ShellExecuteA" ( _
          ByVal hwnd As LongPtr, ByVal lpOperation As String, _
          ByVal lpFile As String, ByVal lpParameters As String, _
          ByVal lpDirectory As String, ByVal nShowCmd As Long) _
        As LongPtr
     
    Public Function OUVRIRfichier(adresse, repertoire)
        ShellExecute 0&, vbNullString, adresse, repertoire, vbNullString, vbNormalFocus 'on ouvre le document
    End Function
    Recherche, sélection et enregistrement fichier avec adresse complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub BoutonRecherche_Click()
    Dim adresseDOCUMENT, nomDOCUMENT As String
     
    Set SelectFichier = Application.FileDialog(msoFileDialogFilePicker)
    With SelectFichier
        .AllowMultiSelect = False
        .InitialFileName = "C:\Users\MonRepertoire"
        .InitialView = msoFileDialogViewSmallIcons
        .Title = "Blablabla ..."
        .ButtonName = "Enregistrer ce fichier"
    End With
     
    If SelectFichier.Show = -1 Then
        adresseDOCUMENT = SelectFichier.SelectedItems(1) 'extraction du chemin complet
        nomDOCUMENT = Dir(adresseDOCUMENT) ' extraction du nom seul
        ' ... procédure d'enregistrement à volonté et à discrétion ....  
    End If
     
    End Sub

    Ouverture du fichier directement:
    Dans l'exemple ci-dessous à partir d'un control liste avec adresse complète du fichier en colonne 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ListeDOCUMENT_DblClick(Cancel As Integer)
    Dim adresseDOCUMENT, repertoireDOCUMENT As String
     
    adresseDOCUMENT = ListeDOCUMENT.Column(2)
     
    repertoireDOCUMENT = Mid(adresseDOCUMENT, 1, InStrRev(chaine, "\", -1, 1))
     
    Call OUVRIRfichier(adresseDOCUMENT, repertoireDOCUMENT)
     
    End Sub

    Voilà c'est tout
    Bon décompte de l'Avent à tous
    Unlucky Luke

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bravo !

    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Ouvrir un fichier après sélection
    Par anelinette dans le forum WinDev
    Réponses: 1
    Dernier message: 28/09/2010, 16h34
  2. Réponses: 1
    Dernier message: 30/06/2010, 21h15
  3. Réponses: 1
    Dernier message: 07/04/2010, 22h23
  4. Réponses: 11
    Dernier message: 27/10/2008, 09h15
  5. [Zip] Droits sur fichiers après extraction avec PclZip
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/04/2008, 16h37

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