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
    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
  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
      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