Macro export access vers excel avec proposition chemin

Résolu
Bonjour,

actuellement, j'utilise dans access une macro "transfertfeuillecacul" pour transférer les données d'une requête vers excel.Ca fonctionne correctement mais le problème est que je voudrais que lors du lancement de la macro, l'utilisateur aie le choix du chemin où il désire enregistrer le classeur ce qui est impossible avec la macro "transfertfeuillecacul" qui demande obligatoirement un chemin de destination.

Merci pour votre aide

3 réponses

  1. Contributeur
    il faut que tu ailles dans visual basic (sur 2007: outils base de donnée)ou + facilement par Alt+F11 ou <2007 outils-macro-visual basic editeur

    Ctl+R pour voir le projet
    insertion- module
    et tu fais un copier-coller de la fonction

    après tu demandes la fonction dans ta procédure (tu vas retrouver dans modules de classes objet dans le bouton (ou autre) qui déclenche ta macro et tu insères recherchedossier certainement au départ avant l'insertion dans xl

    un exemple où on jouait de la musique en cherchant le répertoire où se trouve le fichier "vieux_tel" puis en appelant une macro "jouerwav"

    dans le module de classe objet
    Private Sub Commande6_Click() 
    destination = recherchedossier 
    Call jouer_wav(destination & "\" & "vieux_tel.wav") 
    End Sub


    dans le module 1
    Option Compare Database
    Private Declare Function PlaySound32 Lib "winmm.dll" Alias "PlaySoundA" (ByVal IpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
    
    Sub jouer_wav(fichier)
        Call PlaySound32(fichier, 0&, &H1)
    End Sub
    
    Function recherchedossier()
    'Auteurs: @+thierry_xld et michel_m
    Dim ObjShell As Object, ObjFolder As Object
    ect....
    End Function


    Michel
    0
    1. Très très belle fonction !! et qui fonctionne...
      gg^^
      0
    2. Contributeur
      merci, bon WE
      0
  2. Bonjour à tous et merci Michel pour ton aide,

    je ne suis pas un pro d'access et VBA mais comment lancer le module?
    Comment lancer ce module?J'ai créé une macro ouvrirmodule mais le nom du module n'est pas reconnu.

    Je crois qu'il me manque quelques bases pour le VBA j'ai du mal avec ce code.
    0
    1. Contributeur
      Bonjour

      fonction à mettre dans unmodule

      Function recherchedossier()
      'Auteurs: @+thierry_xld et michel_m
      Dim ObjShell As Object, ObjFolder As Object
      Dim Message As String
      Dim Chemin As String
          
      Message = "Faire la Sélection du Repertoire de sauvegarde:"
      
      Set ObjShell = CreateObject("Shell.Application")
      Set ObjFolder = ObjShell.BrowseForFolder(&H0&, Message, 1)
          
          On Error Resume Next 'Si on sort sans sélection
          Chemin = ObjFolder.ParentFolder.ParseName(ObjFolder.Title).Path & ""
          recherchedossier = Chemin
      End Function

      0
      1. Bonjour, 

        J'ai essayé votre macro, je ne sais pas si je fais mal, mais après le choix de répertoire elle bloque.

        je suis sous office 2016. Est-il possible de m'aider.

        Merci

        Cordialement :)

        0