Bonjour la communauté,
Me voici devant un problème vu maintes et maintes fois sur le net, mais les manières de le résoudre sont à chaque fois différentes, et je n'ai pas trouvé mon bonheur.
Voici la situation:
J'ai au début créé un outil VBA sous access et surtout sous Excel (c'est la partie sous excel qui plante) sous mon nom de compte (F54174).
Cet outil est désormais terminé et fonctionne à 100%. Il a donc fallu l'envoyer sur le poste de mon responsable de stage pour qu'il puisse continuer à le faire tourner une fois mon départ. (son ndc est j85316)
Lors de l'exécution du code, sur son poste, j'ai une erreur 1004: Impossible d'exécuter la macro "modèle.xlsm!Macro_debut". Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.
L'erreur se passe dans cette fonction:
sur la ligne
Or, lorsque je me connecte sur son poste avec mon profil, ce code fonctionne.
J'ai dejà essayé plusieurs solutions, par exemple rajout dans regedit.exe de "AccessBypassEncryptedMacroScan" dans HKEY-CURRENT-USER > Softwares > Microsoft > Office > Access et rajout de "ExcelBypassEncryptedMacroScan" dans HKEY-CURRENT-USER > Softwares > Microsoft > Office > Excel
J'ai également approuvé l'emplacement D:\Documents sous Access ET sous Excel (Options > Centre de gestion de compatibilité > paramètres du centre de gestion de compatibilité > emplacements approuvés)
Cet emplacement contient à la fois ma base Access qui n'a pas de problèmes et mon fichier Excel "modèle.xlsm" qui pose problème.
Dernier point perturbant,
ouvre bel et bien mon fichier Excel, c'est la macro qui ne veut pas se lancer. Par contre, quand je vais manuellement dans le fichier pour l'exécuter, elle fonctionne parfaitement. C'est à n'y rien comprendre.
J'espère que vous pourrez m'aider, je suis à cours de ressources
Bien à vous,
Kraenys
Me voici devant un problème vu maintes et maintes fois sur le net, mais les manières de le résoudre sont à chaque fois différentes, et je n'ai pas trouvé mon bonheur.
Voici la situation:
J'ai au début créé un outil VBA sous access et surtout sous Excel (c'est la partie sous excel qui plante) sous mon nom de compte (F54174).
Cet outil est désormais terminé et fonctionne à 100%. Il a donc fallu l'envoyer sur le poste de mon responsable de stage pour qu'il puisse continuer à le faire tourner une fois mon départ. (son ndc est j85316)
Lors de l'exécution du code, sur son poste, j'ai une erreur 1004: Impossible d'exécuter la macro "modèle.xlsm!Macro_debut". Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.
L'erreur se passe dans cette fonction:
Code:
Function ExportXLS_automatique()
' Objets Access
Dim dbsBase As DAO.Database
Dim rstRequete As DAO.Recordset
Dim rstStock 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 intLig1 As Long
Dim intCol As Long
Dim intCol1 As Long
Dim DerLig As Long
Dim nom As Variant
' Création du classeur Excel
Set appexcel = CreateObject("Excel.application")
Set wbkRequete = appexcel.Workbooks.Add
Set wksRequete = appexcel.ActiveSheet
Set wksStock = appexcel.ActiveSheet
appexcel.Visible = True
' Ouverture de la table
Set dbsBase = DBEngine.OpenDatabase("D:\Documents\DUMP_EAM.accdb")
Set rstStock = dbsBase.OpenRecordset("Liste de requêtes à traiter", dbOpenDynaset)
With wksStock
' Parcours des enregistrements
' Ajout d’une ligne par enregistrement
intLig1 = 1
.Cells(1, 1).CopyFromRecordset rstStock
DerLig = wksStock.UsedRange.Rows.Count
Do While DerLig >= intLig1
intCol1 = 1
.Cells(1, 1).CopyFromRecordset rstStock
' Mise à jour de la feuille active
Set rstRequete = dbsBase.OpenRecordset(wksRequete.Cells(intLig1, 1), dbOpenDynaset)
nom = wksStock.Cells(intLig1, 1)
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
.Cells(2, 1).CopyFromRecordset rstRequete
' Affectation d’un nom à la feuille Excel
.Name = "Liste_Complete"
End With
' Fermeture des objets Access
rstRequete.Close
dbsBase.Close
' Activation du classeur dans Excel
appexcel.ActiveWindow.Activate
appexcel.Visible = True
appexcel.Run ("'modèle.xlsm!'Macro_debut")
appexcel.DisplayAlerts = False
wbkRequete.SaveAs FileName:= _
"\\ATLAS.EDF.FR\co\33bla-dpn\Projets.006\SDIN.026\Donnees\Surveullance des PMRQ\" & nom, FileFormat _
:=xlExcel12 'Puis on sauvegarde le fichier complet
appexcel.DisplayAlerts = True
wbkRequete.Close
appexcel.ActiveWorkbook.Close
appexcel.Application.Quit
' ReCréation du classeur Excel
Set appexcel = CreateObject("Excel.application")
Set wbkRequete = appexcel.Workbooks.Add
Set wksRequete = appexcel.ActiveSheet
Set wksStock = appexcel.ActiveSheet
appexcel.Visible = True
' Réouverture de la table
Set dbsBase = DBEngine.OpenDatabase("D:\Documents\DUMP_EAM.accdb")
Set rstStock = dbsBase.OpenRecordset("Liste de requêtes à traiter", dbOpenDynaset)
intLig1 = intLig1 + 1
Loop
End With
appexcel.ActiveWorkbook.Close
appexcel.Application.Quit
Set appexcel = Nothing
End Function
sur la ligne
Code:
appexcel.Run ("'modèle.xlsm!'Macro_debut")
Or, lorsque je me connecte sur son poste avec mon profil, ce code fonctionne.
J'ai dejà essayé plusieurs solutions, par exemple rajout dans regedit.exe de "AccessBypassEncryptedMacroScan" dans HKEY-CURRENT-USER > Softwares > Microsoft > Office > Access et rajout de "ExcelBypassEncryptedMacroScan" dans HKEY-CURRENT-USER > Softwares > Microsoft > Office > Excel
J'ai également approuvé l'emplacement D:\Documents sous Access ET sous Excel (Options > Centre de gestion de compatibilité > paramètres du centre de gestion de compatibilité > emplacements approuvés)
Cet emplacement contient à la fois ma base Access qui n'a pas de problèmes et mon fichier Excel "modèle.xlsm" qui pose problème.
Dernier point perturbant,
Code:
appexcel.Run ("'modèle.xlsm!'Macro_debut")
J'espère que vous pourrez m'aider, je suis à cours de ressources
Bien à vous,
Kraenys
Dernière édition: