Bonjour le forum,
Voici mon problème, je cherche à adapter un bout de code pour qu'il puisse traiter plusieurs cas simultanément.
Jusqu'ici, voici à quoi le code ressemble:
J'ai une table qui contient des suites de caractères représentant le nom de requêtes à traiter. ( j'ai exporté cette table sous XLD1.xlsx mais ils agit bien d'une table access à la base)
Le but final est que chacune des requêtes inscrites ici soient traitées dans ma fonction ExportXLS_automatique
Il faudrait donc remplacer
par
et que l'on sauvegarde le résultat avec le nom de la variable et non "Export_access" dans
comme c'est actuellement.
Voilà, j'espère ne pas être trop brouillon dans mes explications...
Je ne peux à mon avis pas fournir plus de documents, le fichier sur lequel je travaille dépassant le Go.
Merci d'avance de votre aide, si il y a besoin de précisions ou d'autre documents, je ferai tout mon possible pour fournir de quoi vous aider à m'aider.
Un dernier détail, la fonction présentée au début fonctionne parfaitement quand il sagit de "cas par cas", c'est l'adaptation avec variable pour traiter plusieurs requêtes l'une après l'autre qui pose problème.
Bien à vous.
Kraenys
Voici mon problème, je cherche à adapter un bout de code pour qu'il puisse traiter plusieurs cas simultanément.
Jusqu'ici, voici à quoi le code ressemble:
Code:
Function ExportXLS_automatique()
' Objets Access
Dim dbsBase As DAO.Database
Dim rstRequete As DAO.Recordset
Dim fld As DAO.Field
' Objets Excel
Dim appexcel As Object
Dim wbkRequete As Object
Dim wksRequete As Object
' Variables de boucles
Dim intLig As Long
Dim intCol As Long
' Création du classeur Excel
Set appexcel = CreateObject("Excel.application")
Set wbkRequete = appexcel.Workbooks.Add
Set wksRequete = appexcel.ActiveSheet
appexcel.Visible = True
' Ouverture de la table
Set dbsBase = DBEngine.OpenDatabase("C:\Users\F54174\Documents\DUMP_EAM.accdb")
Set rstRequete = dbsBase.OpenRecordset("Export_access", dbOpenDynaset)
' Mise à jour de la feuille active
With wksRequete
' En-têtes de colonnes renseignées à partir des noms de champs
intCol = 1
For Each fld In rstRequete.Fields
.Cells(1, intCol).Value = fld.Name
intCol = intCol + 1
Next fld
' Parcours des enregistrements
' Ajout d’une ligne par enregistrement
intLig = 2
Do While Not rstRequete.EOF
intCol = 1
For Each fld In rstRequete.Fields
.Cells(intLig, intCol).Value = rstRequete(intCol - 1)
intCol = intCol + 1
Next fld
intLig = intLig + 1
rstRequete.MoveNext
Loop
' Affectation d’un nom à la feuille Excel
.Name = "Export_access"
End With
' Fermeture des objets Access
rstRequete.Close
dbsBase.Close
' Activation du classeur dans Excel
appexcel.ActiveWindow.Activate
appexcel.Visible = True
'Call Macro_xlsm
appexcel.Run ("modèle.xlsm!Macro_debut")
wbkRequete.SaveAs FileName:= _
"C:\Users\F54174\Documents\" & "Export_access", FileFormat _
:=xlOpenXMLWorkbookMacroEnabled 'Puis on sauvegarde le fichier complet
wbkRequete.Close
appexcel.ActiveWorkbook.Close
appexcel.Application.Quit
Set appexcel = Nothing
End Function
J'ai une table qui contient des suites de caractères représentant le nom de requêtes à traiter. ( j'ai exporté cette table sous XLD1.xlsx mais ils agit bien d'une table access à la base)
Le but final est que chacune des requêtes inscrites ici soient traitées dans ma fonction ExportXLS_automatique
Il faudrait donc remplacer
Code:
Set rstRequete = dbsBase.OpenRecordset("Export_access", dbOpenDynaset)
Code:
Set rstRequete = dbsBase.OpenRecordset(Une variable contenant chacune des requetes contenues dans la table access (ici extraite dans XLD1.xlsx),dbOpenDynaset)
et que l'on sauvegarde le résultat avec le nom de la variable et non "Export_access" dans
Code:
wbkRequete.SaveAs FileName:= _
"C:\Users\F54174\Documents\" & "Export_access", FileFormat _
:=xlOpenXMLWorkbookMacroEnabled 'Puis on sauvegarde le fichier complet
Voilà, j'espère ne pas être trop brouillon dans mes explications...
Je ne peux à mon avis pas fournir plus de documents, le fichier sur lequel je travaille dépassant le Go.
Merci d'avance de votre aide, si il y a besoin de précisions ou d'autre documents, je ferai tout mon possible pour fournir de quoi vous aider à m'aider.
Un dernier détail, la fonction présentée au début fonctionne parfaitement quand il sagit de "cas par cas", c'est l'adaptation avec variable pour traiter plusieurs requêtes l'une après l'autre qui pose problème.
Bien à vous.
Kraenys
Pièces jointes
Dernière édition: