Comment accèder à une cellule sur un fichier Excel exporté par Access
5 réponses
dpouit
Bonjour,
Dans un module, j'ai fait :
DoCmd.RunCommand acCmdOutputToExcel
pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers
Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel
en automatique à partir de mon module. Par exemple, supprimer la
première colonne, modifier le titre de mes colonnes pour remplacer le
nom des rubriques dans ma table par un libellé compréhensible par
l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais
il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft
' Excel.
Dim MyXL As Object
' Indicateur pour la libération à la fin.
Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel
' est déjà en exécution.
On Error Resume Next ' Retarde la récupération
' d'erreur.
' La fonction Getobject appelée sans le premier
' argument renvoie une référence à une occurrence de
' l'application. Si l'application n'est pas en
' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé
' d'argument.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Efface l'objet Err si une erreur s'est
' produite.
' Définit la variable objet pour qu'elle fasse
' référence au fichier à ouvrir.
Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa
' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection
' Windows de la référence à l'objet MyXL.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
Pour commencer dans l'automation office, toujours utiliser une nouvelle instance de l'application. l'utilisation d'une instance chargée c'est pour plus tard, car qui te dit que tu as le droit d'utiliser une instance en cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Dans un module, j'ai fait : DoCmd.RunCommand acCmdOutputToExcel pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel en automatique à partir de mon module. Par exemple, supprimer la première colonne, modifier le titre de mes colonnes pour remplacer le nom des rubriques dans ma table par un libellé compréhensible par l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft ' Excel. Dim MyXL As Object
' Indicateur pour la libération à la fin. Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel ' est déjà en exécution. On Error Resume Next ' Retarde la récupération ' d'erreur. ' La fonction Getobject appelée sans le premier ' argument renvoie une référence à une occurrence de ' l'application. Si l'application n'est pas en ' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé ' d'argument. Set MyXL = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' Efface l'objet Err si une erreur s'est ' produite.
' Définit la variable objet pour qu'elle fasse ' référence au fichier à ouvrir. Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa ' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection ' Windows de la référence à l'objet MyXL. MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True
If ExcelWasNotRunning = True Then MyXL.Application.Quit
Set MyXL = Nothing ' Libère la référence à ' l'application et à la feuille de ' calcul.
Que dois-je faire ? Où est-ce que je me suis plantée ?
Merci pour votre aide.
Bonjour.
Pour commencer dans l'automation office, toujours utiliser une nouvelle
instance de l'application. l'utilisation d'une instance chargée c'est pour
plus tard, car qui te dit que tu as le droit d'utiliser une instance en
cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" <dpouit@capgemini.fr> a écrit dans le message de
news:634082d6.0405060020.29d2a7b6@posting.google.com...
Bonjour,
Dans un module, j'ai fait :
DoCmd.RunCommand acCmdOutputToExcel
pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers
Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel
en automatique à partir de mon module. Par exemple, supprimer la
première colonne, modifier le titre de mes colonnes pour remplacer le
nom des rubriques dans ma table par un libellé compréhensible par
l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais
il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft
' Excel.
Dim MyXL As Object
' Indicateur pour la libération à la fin.
Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel
' est déjà en exécution.
On Error Resume Next ' Retarde la récupération
' d'erreur.
' La fonction Getobject appelée sans le premier
' argument renvoie une référence à une occurrence de
' l'application. Si l'application n'est pas en
' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé
' d'argument.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Efface l'objet Err si une erreur s'est
' produite.
' Définit la variable objet pour qu'elle fasse
' référence au fichier à ouvrir.
Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa
' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection
' Windows de la référence à l'objet MyXL.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Pour commencer dans l'automation office, toujours utiliser une nouvelle instance de l'application. l'utilisation d'une instance chargée c'est pour plus tard, car qui te dit que tu as le droit d'utiliser une instance en cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Dans un module, j'ai fait : DoCmd.RunCommand acCmdOutputToExcel pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel en automatique à partir de mon module. Par exemple, supprimer la première colonne, modifier le titre de mes colonnes pour remplacer le nom des rubriques dans ma table par un libellé compréhensible par l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft ' Excel. Dim MyXL As Object
' Indicateur pour la libération à la fin. Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel ' est déjà en exécution. On Error Resume Next ' Retarde la récupération ' d'erreur. ' La fonction Getobject appelée sans le premier ' argument renvoie une référence à une occurrence de ' l'application. Si l'application n'est pas en ' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé ' d'argument. Set MyXL = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' Efface l'objet Err si une erreur s'est ' produite.
' Définit la variable objet pour qu'elle fasse ' référence au fichier à ouvrir. Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa ' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection ' Windows de la référence à l'objet MyXL. MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True
If ExcelWasNotRunning = True Then MyXL.Application.Quit
Set MyXL = Nothing ' Libère la référence à ' l'application et à la feuille de ' calcul.
Que dois-je faire ? Où est-ce que je me suis plantée ?
Merci pour votre aide.
dpouit
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
"Raymond [mvp]" wrote in message news:...
Bonjour.
Pour commencer dans l'automation office, toujours utiliser une nouvelle instance de l'application. l'utilisation d'une instance chargée c'est pour plus tard, car qui te dit que tu as le droit d'utiliser une instance en cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Dans un module, j'ai fait : DoCmd.RunCommand acCmdOutputToExcel pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel en automatique à partir de mon module. Par exemple, supprimer la première colonne, modifier le titre de mes colonnes pour remplacer le nom des rubriques dans ma table par un libellé compréhensible par l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft ' Excel. Dim MyXL As Object
' Indicateur pour la libération à la fin. Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel ' est déjà en exécution. On Error Resume Next ' Retarde la récupération ' d'erreur. ' La fonction Getobject appelée sans le premier ' argument renvoie une référence à une occurrence de ' l'application. Si l'application n'est pas en ' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé ' d'argument. Set MyXL = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' Efface l'objet Err si une erreur s'est ' produite.
' Définit la variable objet pour qu'elle fasse ' référence au fichier à ouvrir. Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa ' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection ' Windows de la référence à l'objet MyXL. MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True
If ExcelWasNotRunning = True Then MyXL.Application.Quit
Set MyXL = Nothing ' Libère la référence à ' l'application et à la feuille de ' calcul.
Que dois-je faire ? Où est-ce que je me suis plantée ?
Merci pour votre aide.
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier
affiché sous Excel que je peux faire des manip dessus.
Dans ce cas, comment dois-je faire ?
le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est
complétement pris en charge par Microsoft. Je ne connais pas le chemin
du fichier créé. Pour pouvoir utiliser une nouvelle instance, il
faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle
instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est
celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour
le récupérer ?
Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé.
Comment faire pour fermer un fichier de l'instance chargée (ou fermer
l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant
j'avais une requête avec 11 critères de sélection (renseignés ou
non).J'ai résolu mon problème en mettant un filtre sur mon formulaire.
Mais pour envoyer le résultat de la requête vers Excel, soit j'avais
des temps de réponse épouvantables mais avec les données que je
voulais, soit il fallait trouver une autre solution. D'où le
"DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers
Excel le contenu de ma requête sur laquelle est basé mon formulaire.
Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas
conviviaux pour les utilisateurs. Mais peut-être y a-t-il une
meilleure solution ?
Merci de votre aide.
"Raymond [mvp]" <XYZ.access.seneque@free.fr> wrote in message news:<OuT5YR0MEHA.3096@TK2MSFTNGP12.phx.gbl>...
Bonjour.
Pour commencer dans l'automation office, toujours utiliser une nouvelle
instance de l'application. l'utilisation d'une instance chargée c'est pour
plus tard, car qui te dit que tu as le droit d'utiliser une instance en
cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" <dpouit@capgemini.fr> a écrit dans le message de
news:634082d6.0405060020.29d2a7b6@posting.google.com...
Bonjour,
Dans un module, j'ai fait :
DoCmd.RunCommand acCmdOutputToExcel
pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers
Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel
en automatique à partir de mon module. Par exemple, supprimer la
première colonne, modifier le titre de mes colonnes pour remplacer le
nom des rubriques dans ma table par un libellé compréhensible par
l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais
il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft
' Excel.
Dim MyXL As Object
' Indicateur pour la libération à la fin.
Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel
' est déjà en exécution.
On Error Resume Next ' Retarde la récupération
' d'erreur.
' La fonction Getobject appelée sans le premier
' argument renvoie une référence à une occurrence de
' l'application. Si l'application n'est pas en
' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé
' d'argument.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Efface l'objet Err si une erreur s'est
' produite.
' Définit la variable objet pour qu'elle fasse
' référence au fichier à ouvrir.
Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa
' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection
' Windows de la référence à l'objet MyXL.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
"Raymond [mvp]" wrote in message news:...
Bonjour.
Pour commencer dans l'automation office, toujours utiliser une nouvelle instance de l'application. l'utilisation d'une instance chargée c'est pour plus tard, car qui te dit que tu as le droit d'utiliser une instance en cours ?
regarde les exemples sur la page : http://access.seneque.free.fr/excel.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Dans un module, j'ai fait : DoCmd.RunCommand acCmdOutputToExcel pour envoyer le contenu de mon formulaire vers Excel.
Tout se passe bien, le contenu de mon formulaire est bien envoyé vers Excel. Mais je voudrais pouvoir faire de la mise en forme sous Excel en automatique à partir de mon module. Par exemple, supprimer la première colonne, modifier le titre de mes colonnes pour remplacer le nom des rubriques dans ma table par un libellé compréhensible par l'utilisateur.
J'ai récupéré du code sur le groupe de discussion + aide Access, mais il ne se passe rien (l'appli Excel ne se ferme même pas).
Voilà ce que j'ai fait :
' Variable devant contenir la référence à Microsoft ' Excel. Dim MyXL As Object
' Indicateur pour la libération à la fin. Dim ExcelWasNotRunning As Boolean
' Test pour déterminer si une copie de Microsoft Excel ' est déjà en exécution. On Error Resume Next ' Retarde la récupération ' d'erreur. ' La fonction Getobject appelée sans le premier ' argument renvoie une référence à une occurrence de ' l'application. Si l'application n'est pas en ' exécution, une erreur se produit. Notez la virgule
' utilisée en tant que premier espace réservé ' d'argument. Set MyXL = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' Efface l'objet Err si une erreur s'est ' produite.
' Définit la variable objet pour qu'elle fasse ' référence au fichier à ouvrir. Set MyXL = GetObject(, "Excel.Sheet")
' Affiche Microsoft Excel par l'intermédiaire de sa ' propriété Application. Affiche ensuite la fenêtre
' contenant le fichier à l'aide de la collection ' Windows de la référence à l'objet MyXL. MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True
If ExcelWasNotRunning = True Then MyXL.Application.Quit
Set MyXL = Nothing ' Libère la référence à ' l'application et à la feuille de ' calcul.
Que dois-je faire ? Où est-ce que je me suis plantée ?
Merci pour votre aide.
Raymond [mvp]
Bonjour.
Essaie de passer par vba pour tout, comme ceci: 1- faire une requête avec seulement les champs nécessaires 2- indiquer des alias si tu veux que les noms des colonnes ne soient pas ceux de access 3- exporter la requête par la commande : DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "nomdelarequete", "chemindufichierexcel.xls", True 4- passer par automation pour faire certaines modifs mais qui ne seront pas nombreuses si ta requête est bien faite.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
Bonjour.
Essaie de passer par vba pour tout, comme ceci:
1- faire une requête avec seulement les champs nécessaires
2- indiquer des alias si tu veux que les noms des colonnes ne soient pas
ceux de access
3- exporter la requête par la commande :
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9,
"nomdelarequete", "chemindufichierexcel.xls", True
4- passer par automation pour faire certaines modifs
mais qui ne seront pas nombreuses si ta requête est bien faite.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" <dpouit@capgemini.fr> a écrit dans le message de
news:634082d6.0405070138.244f8c0@posting.google.com...
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier
affiché sous Excel que je peux faire des manip dessus.
Dans ce cas, comment dois-je faire ?
le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est
complétement pris en charge par Microsoft. Je ne connais pas le chemin
du fichier créé. Pour pouvoir utiliser une nouvelle instance, il
faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle
instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est
celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour
le récupérer ?
Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé.
Comment faire pour fermer un fichier de l'instance chargée (ou fermer
l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant
j'avais une requête avec 11 critères de sélection (renseignés ou
non).J'ai résolu mon problème en mettant un filtre sur mon formulaire.
Mais pour envoyer le résultat de la requête vers Excel, soit j'avais
des temps de réponse épouvantables mais avec les données que je
voulais, soit il fallait trouver une autre solution. D'où le
"DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers
Excel le contenu de ma requête sur laquelle est basé mon formulaire.
Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas
conviviaux pour les utilisateurs. Mais peut-être y a-t-il une
meilleure solution ?
Essaie de passer par vba pour tout, comme ceci: 1- faire une requête avec seulement les champs nécessaires 2- indiquer des alias si tu veux que les noms des colonnes ne soient pas ceux de access 3- exporter la requête par la commande : DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "nomdelarequete", "chemindufichierexcel.xls", True 4- passer par automation pour faire certaines modifs mais qui ne seront pas nombreuses si ta requête est bien faite.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
dpouit
Bonjour,
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie dans VBA et contenant le string de ma requête ?
Encore merci.
"Raymond [mvp]" wrote in message news:<#...
Bonjour.
Essaie de passer par vba pour tout, comme ceci: 1- faire une requête avec seulement les champs nécessaires 2- indiquer des alias si tu veux que les noms des colonnes ne soient pas ceux de access 3- exporter la requête par la commande : DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "nomdelarequete", "chemindufichierexcel.xls", True 4- passer par automation pour faire certaines modifs mais qui ne seront pas nombreuses si ta requête est bien faite.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
Bonjour,
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie
dans VBA et contenant le string de ma requête ?
Encore merci.
"Raymond [mvp]" <XYZ.access.seneque@free.fr> wrote in message news:<#Eq0ujBNEHA.1032@tk2msftngp13.phx.gbl>...
Bonjour.
Essaie de passer par vba pour tout, comme ceci:
1- faire une requête avec seulement les champs nécessaires
2- indiquer des alias si tu veux que les noms des colonnes ne soient pas
ceux de access
3- exporter la requête par la commande :
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9,
"nomdelarequete", "chemindufichierexcel.xls", True
4- passer par automation pour faire certaines modifs
mais qui ne seront pas nombreuses si ta requête est bien faite.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" <dpouit@capgemini.fr> a écrit dans le message de
news:634082d6.0405070138.244f8c0@posting.google.com...
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier
affiché sous Excel que je peux faire des manip dessus.
Dans ce cas, comment dois-je faire ?
le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est
complétement pris en charge par Microsoft. Je ne connais pas le chemin
du fichier créé. Pour pouvoir utiliser une nouvelle instance, il
faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle
instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est
celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour
le récupérer ?
Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé.
Comment faire pour fermer un fichier de l'instance chargée (ou fermer
l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant
j'avais une requête avec 11 critères de sélection (renseignés ou
non).J'ai résolu mon problème en mettant un filtre sur mon formulaire.
Mais pour envoyer le résultat de la requête vers Excel, soit j'avais
des temps de réponse épouvantables mais avec les données que je
voulais, soit il fallait trouver une autre solution. D'où le
"DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers
Excel le contenu de ma requête sur laquelle est basé mon formulaire.
Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas
conviviaux pour les utilisateurs. Mais peut-être y a-t-il une
meilleure solution ?
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie dans VBA et contenant le string de ma requête ?
Encore merci.
"Raymond [mvp]" wrote in message news:<#...
Bonjour.
Essaie de passer par vba pour tout, comme ceci: 1- faire une requête avec seulement les champs nécessaires 2- indiquer des alias si tu veux que les noms des colonnes ne soient pas ceux de access 3- exporter la requête par la commande : DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "nomdelarequete", "chemindufichierexcel.xls", True 4- passer par automation pour faire certaines modifs mais qui ne seront pas nombreuses si ta requête est bien faite.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Donc, si j'ai bien compris, ce n'est pas parce que j'ai le fichier affiché sous Excel que je peux faire des manip dessus. Dans ce cas, comment dois-je faire ? le "DoCmd.RunCommand acCmdOutputToExcel" que j'utilise est complétement pris en charge par Microsoft. Je ne connais pas le chemin du fichier créé. Pour pouvoir utiliser une nouvelle instance, il faudrait que je puisse ouvrir ce fichier tout en lançant une nouvelle instance d'Excel. Est-ce bien celà ? Or le répertoire utilisé est celui pas défaut d'Excel et non pas celui d'Access. Comment faire pour le récupérer ? Par ailleurs, pour ouvrir le fichier, il faudrait qu'il soit fermé. Comment faire pour fermer un fichier de l'instance chargée (ou fermer l'instance) ?
Pour info, au départ mon problème vient des temps de réponse. Avant j'avais une requête avec 11 critères de sélection (renseignés ou non).J'ai résolu mon problème en mettant un filtre sur mon formulaire. Mais pour envoyer le résultat de la requête vers Excel, soit j'avais des temps de réponse épouvantables mais avec les données que je voulais, soit il fallait trouver une autre solution. D'où le "DoCmd.RunCommand acCmdOutputToExcel" qui me permet d'exporter vers Excel le contenu de ma requête sur laquelle est basé mon formulaire. Mais j'ai des colonnes en trop et les titres des colonnes ne sont pas conviviaux pour les utilisateurs. Mais peut-être y a-t-il une meilleure solution ?
Merci de votre aide.
Raymond [mvp]
Bonjour.
je crois que dans ce cas c'est bien le nom d'une requête enregistrée, mais quand ça marchera avec la requête enregistrée, tu fais un essai avec un texte sql. soit tu indiques une variable qui contient le nom de ta requête soit le nom de ta requête entouré de " -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie dans VBA et contenant le string de ma requête ?
Encore merci.
Bonjour.
je crois que dans ce cas c'est bien le nom d'une requête enregistrée, mais
quand ça marchera avec la requête enregistrée, tu fais un essai avec un
texte sql.
soit tu indiques une variable qui contient le nom de ta requête soit le nom
de ta requête entouré de "
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" <dpouit@capgemini.fr> a écrit dans le message de
news:634082d6.0405082311.16cc91af@posting.google.com...
Bonjour,
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie
dans VBA et contenant le string de ma requête ?
je crois que dans ce cas c'est bien le nom d'une requête enregistrée, mais quand ça marchera avec la requête enregistrée, tu fais un essai avec un texte sql. soit tu indiques une variable qui contient le nom de ta requête soit le nom de ta requête entouré de " -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Dani?le" a écrit dans le message de news:
Bonjour,
Quand tu dis "nomdelarequête", il s'agit bien d'une variable définie dans VBA et contenant le string de ma requête ?