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 :

Comment utiliser le chemin d'accès affiché dans ma MsgBox pour définir une variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut Comment utiliser le chemin d'accès affiché dans ma MsgBox pour définir une variable
    Salut,

    Je suis actuellement confronté à la même problèmatique: je souhaite définir un argument (chemin d'accès du fichier) d'une fonction grâce à l'explorateur.
    Ayant consulté longuement la FAQ, j'ai trouvé comment activer et paramètrer l'explorateur pour renvoyer dans un MsgBox le chemin du fichier sélectionné, mais toujours aucun moyen de l'utiliser pour définir l'argument.
    J'ai essayé diverses opérations via un TransferText, mais rien à faire.

    Donc la question est: Comment utiliser le chemin d'accès affiché dans ma MsgBox pour définir une variable?

    Merci d'avance,

    LUD734

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,
    tu peux passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim temp as Variant
    temp = Application.GetOpenFileName()
    if tempo<> False Then
    'code ouverture
    End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Bonjour à toi JP,

    Ah, le fameux GetOpenFileName!
    Ca me simplifierait bien la vie de pouvoir utiliser cette commande, mais j'ai un petit problème avec: Chez moi, elle n'est disponible que sous Excel.
    Sous Access, impossible de trouver la référence Microsoft Common Dialog Control, pour utiliser le composant OpenDialog. Pourtant, quand je parcoure manuellement, je trouve bien comdlg32.dll, mais impossible de rajouter la référence.
    Ah oui, autre problème: ma boîte à outils est grisée: impossible de m'en servir -_-.

    Bref, je ne peux pas utiliser la commande que tu me proposes JP, parce que l'objet n'est pas reconnu.

    Une idée?

    Merci d'avance,

    LUD734

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pour utiliser GetOpenFileName, je passe par une "pseudo" Application Excel, que je kill à la fin. Il faut ajouter la référence Excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim tempoXlApp as New Excel.Application
    Dim temp as Variant
    temp = tempoXlApp.GetOpenFileName()
    '
    '
    '
    tempoXlApp .Quit
    Set tempoXlApp  = Nothing
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Par défaut
    Merci, j'ai résolu ce problème de GetOpenFileName.

    Seulement, il semble y avoir un problème quand je l'intègre au code. Un exemple concret sera sûrement plus clair:

    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
    Sub EnvoiMailMéthodeOLE(Adresse As String, Objet As String, Corps As String, Optional Pièce As String, Optional Cc As String, Optional Bcc As String)
        Dim MonAppliOutlook As New Outlook.Application
        Dim MonMail As Outlook.MailItem
        Dim MaPièce As Outlook.Attachments
        Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
        With MonMail
            '.Display ' 
            .To = Adresse
            If Not IsNull(Cc) Then .Cc = Cc
            If Not IsNull(Bcc) Then .Bcc = Bcc
            .Subject = Objet
            .Body = Corps
            If Not IsNull(Pièce) Then
                Set MaPièce = .Attachments
                MaPièce.Add Pièce, olByValue
            End If
            .Send
        End With
    End Sub
    Et la fonction rattachée est la suivante:

    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
    Function EnvoiAvecPièceJointe()
    Dim tempoXlApp As New Excel.Application
    Dim temp As Variant
     
    temp = tempoXlApp.GetOpenFileName()
     
        EnvoiMailMéthodeOLE Adresse:=InputBox("Entrer l'adresse du destinataire"), _
                            Objet:=InputBox("Objet du Message"), _
                            Corps:=InputBox("Message à envoyer"), _
                            Pièce:="temp", _
                            Cc:="", _
                            Bcc:=""
     
                            tempoXlApp.Quit
    Set tempoXlApp = Nothing
     
    End Function
    Le message retourné est: Impossible de trouver ce fichier. Vérifiez quele chemin d'accès et le nom du fichier sont corrects. Pourtant je suis absolument sûr du nom du fichier, et de son existence.

    Je dois passer pour un sous-doué, mais please, help!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    et en remplaçant
    par
    d'autre part, tu dois combiner le IsNull avec IsMissing et mettre tester à False (cas où aucun fichier n'a été sélectionné).
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/01/2013, 16h39
  2. Réponses: 1
    Dernier message: 23/08/2012, 09h32
  3. Réponses: 4
    Dernier message: 02/09/2009, 09h23
  4. [MySQL] Comment utiliser le chemin d'accès d'une image ?
    Par mealtone dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 18/08/2006, 11h29
  5. Comment subsituer un chemin par un autre dans un réseau ?
    Par Baillard dans le forum Développement
    Réponses: 3
    Dernier message: 11/08/2002, 14h01

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