OVH Cloud OVH Cloud

Access -> Excel (La question) ? ;-)

3 réponses
Avatar
kiwix
Bonjour =E0 tous !
Je veux automatiser la copie de plusieurs maccros access=20
dans excel. Pour le moment j'ai =E9crit le d=E9but d'un code=20
qui me permet de cr=E9=E9 un fichier excel avec les feuilles=20
de calcul qui m'int=E9ressent. (Cela fonctionne).=20

Function EXPORTER_VERS_EXCEL()
Dim XL_App As Object
Set XL_App =3D CreateObject("Excel.Application")
With XL_App
.Visible =3D True
.Workbooks.Add
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name =3D "R=E9sultats Estimatifs"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name =3D "PARETO PDR"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name =3D "PARETO MP"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name =3D "PARETO CO"
.DisplayAlerts =3D False
.Worksheets("feuil1").Delete
.Worksheets("feuil2").Delete
.Worksheets("feuil3").Delete
.ActiveWorkbook.SaveAs ("X:\Etude=20
d'optimisation.XLS")
.DisplayAlerts =3D True
.Quit
End With
Set XL_App =3D Nothing
End Function

Maintenant le probl=E8me c'est que je veux copier la maccro=20
PARETO CO dans la feuille PARETO CO idem pour PARETO MP=20
etc...

Comment faire ! J'ai Access 97 et excel 97

Merci pour vos r=E9ponse

3 réponses

Avatar
3stone
Salut,

"kiwix"
[...]
Maintenant le problème c'est que je veux copier la maccro
PARETO CO dans la feuille PARETO CO idem pour PARETO MP
etc...

Comment faire ! J'ai Access 97 et excel 97




Les macros Access n'ont pas grand chose à voir
avec les macros Excel...



PS : Pourquoi envoie tu 2 fois la même question
sous 2 titres différents ????



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar

PS : Pourquoi envoie tu 2 fois la même question
sous 2 titres différents ????



Je croyais que la 1er question n'étais pas passée (excusez
moi)
j'ai fais une erreur c'est pas les maccros que je veux
copier mais les requêtes (bien sur)!

Merci pour vos réponses

Avatar
Maxence HUBICHE
Ah ! tiens ! Tu la remets ici ta question ?
Bon alors, si j'ai bien compris, tu veux mettre le contenu d'une macro dans
une feuille de calcul (ne pas chercher à comprendre, surtout, ne pas
chercher à comprendre ...)

A priori, tu vas avoir du mal :)
Mais (car il y a un mais) tu as une possiblité de t'en sortir :
Il y a une méthode cachée que tu peux utiliser :
Application.SaveAsText acMacro, "NomMacro", "c:test.temp"

Si tu l'utilises, tu vas récupérer un fichier texte "c:test.tmp" qui
contiendra toutes les actions contenues dans ta 'macro'. il te faudra ouvrir
ce fichier texte, et le lire séquentiellement pour en faire ce que tu veux.
C'est du boulot.
Je l'ai fait une fois pour un audit de base de données.
C'est long, mais intéressant.

Je te laisse en découvrir les joies :)

Ciao :)
======================================== Maxence HUBICHE
Formateur & développeur indépendant
Rédacteur Access sur http://www.developpez.com
http://access.developpez.com/access/faq <<= Ici, la FAQ Access de
developpez.com


..
"kiwix" a écrit dans le message de
news: 626f01c4012d$b6ddc5c0$
Bonjour à tous !
Je veux automatiser la copie de plusieurs maccros access
dans excel. Pour le moment j'ai écrit le début d'un code
qui me permet de créé un fichier excel avec les feuilles
de calcul qui m'intéressent. (Cela fonctionne).

Function EXPORTER_VERS_EXCEL()
Dim XL_App As Object
Set XL_App = CreateObject("Excel.Application")
With XL_App
.Visible = True
.Workbooks.Add
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name = "Résultats Estimatifs"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name = "PARETO PDR"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name = "PARETO MP"
.ActiveWorkbook.Sheets.Add
.ActiveSheet.Name = "PARETO CO"
.DisplayAlerts = False
.Worksheets("feuil1").Delete
.Worksheets("feuil2").Delete
.Worksheets("feuil3").Delete
.ActiveWorkbook.SaveAs ("X:Etude
d'optimisation.XLS")
.DisplayAlerts = True
.Quit
End With
Set XL_App = Nothing
End Function

Maintenant le problème c'est que je veux copier la maccro
PARETO CO dans la feuille PARETO CO idem pour PARETO MP
etc...

Comment faire ! J'ai Access 97 et excel 97

Merci pour vos réponse