Macro export access vers excel avec proposition chemin

[Résolu/Fermé]
Signaler
-
Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 septembre 2021
-
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

Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 septembre 2021
3 221
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

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.
Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 septembre 2021
3 221
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
Très très belle fonction !! et qui fonctionne...
gg^^
Messages postés
16513
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 septembre 2021
3 221
merci, bon WE