Bonjour,
J'ai des résultats de recherche dans 4 zones de listes différentes (avec des requetes SELECT dans la propriété Contenu).
je voudrais extraire ces résultats dans un même fichier excel mais dans 4 onglets différents.
Comment faire ?
merci
Bonjour,
J'ai des résultats de recherche dans 4 zones de listes différentes (avec des requetes SELECT dans la propriété Contenu).
je voudrais extraire ces résultats dans un même fichier excel mais dans 4 onglets différents.
Comment faire ?
merci
Salut,
Je te suggère la lecture du tutoriel de Cafeine sur l'export vers Excel. Notamment le point 4.
Les Cours et tutoriels pour apprendre Access, Les codes Sources Access, Le Forum Access, Offres d'emploi développeur Access et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
La fonction TransferSpreadsheet sert à exporter des tables entières. moi les résultats dans mes zones de texte sont des requêtes du type SELECT champs FROM table WHERE condition ORDER BY nom.
est-ce que c'est possible d'extraire directement les résultats de cette requête (qui n'a pas de nom mais est défini dans le contenu de la zone de liste) avec transferspreadsheet ?
oui, en passant par une table temporaire remplie avec la requete select par exemple
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
Ou par un recordset basé sur ta requete.
Voici un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Set Appexcel = CreateObject("Excel.Application") Appexcel.Visible = True Set Wbexcel = Appexcel.Workbooks.Open("C:\Detailled Report.xls") Appexcel.Sheets("Global").Select 'creation du recordset à partir de la requete Dim rsReport As DAO.Recordset Set rsReport = CurrentDb.OpenRecordset("nomrequete") boucleReport = 1 'parcourt le recordset puis afficher les données du recordset dans les cellules du fichier excel While Not rsReport.EOF Appexcel.Cells(boucleReport + 7, 1) = rsReport(0) Appexcel.Cells(boucleReport + 7, 2) = rsReport(1) Appexcel.Cells(boucleReport + 7, 3) = rsReport(2) Appexcel.Cells(boucleReport + 7, 4) = rsReport(3) Appexcel.Cells(boucleReport + 7, 5) = rsReport(4) Appexcel.Cells(boucleReport + 7, 6) = rsReport(5) boucleReport = boucleReport + 1 rsReport.MoveNext Wend Set rsReport = Nothing
Je me suis trompé.. c'est pas le point 4 mais le 5.
Il te permettra de mettre en form ton fichier Excel.
Je suis à moitié d'accord.oui, en passant par une table temporaire remplie avec la requete select par exemple
Ceci fonctionne très bien :
En plus,
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.MaZoneDeListe.RowSource, "MonfichierExcel.xls"
Si tu ajoutes à la suite :
L'exportation se fait dans le même fichier mais dans une feuille différente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.MaZOneDeListe2.RowSource, "MonfichierExcel.xls"
Les Cours et tutoriels pour apprendre Access, Les codes Sources Access, Le Forum Access, Offres d'emploi développeur Access et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
jpcheck :
par exemple avec une requête Création de table ? CREATE TEMPORARY TABLE table (champ1,champ2)
Lou Pitchoun :
J'ai fait comme tu as dit mais j'ai un message d'erreur :
le nom de table n'est pas conforme au regle d'appelation d'objet quand j'écris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.ExpedMarchandise.RowSource, "MonfichierExcel.xls"
Bonjour
1 - Est-ce que ici
Cela représente bien le nom de ta table ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Me.ExpedMarchandise.RowSource
2 - Quelle version d'Excel as-tu ? Car
risque de te donner une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part acSpreadsheetTypeExcel97
Regarde l'aide en fonction de ta version.
Starec
Me.ExpedMarchandise.RowSource représente bien ma table. j'ai les résultats qui s'affiche dans une zone de liste. et quand je met debug.print Me.ExpedMarchandise.Rowsource, j'obtiens biens la formule SQL.
j'ai excel 2003. j'utilise AcSpreadSheetTypeExcel9 mais ça ne marche pas.
Est-ce que l'erreur peut venir de Me.ExpedMarchandise.Rowsource qui est une requete et non pas une table ? le message étant : "le nom de table n'est pas conforme au regle d'appelation d'objet ", ça signifie qu'il cherche une table dans les paramètres, non ?
Bonjour
La méhode TransfertSpreadSheet n'interprètera pas le SQL, il faut le nom d'une table ou d'une requête, et pas le code SQL.
Il faut que tu crées une requête avec ton SQL, et c'est elle que tu devras mettre en paramètre.
Starec
Alors un petit historique sur les numéros :
8 : Access97 (Office97) et accéssoirement 97 qui fonctionne mieux que 8 sur AcSpreadSheetTypeExcel
9 : Access2000 (Office2000)
10 : Access2002/XP (Office2002/XP)
11 : Access2003 (Office2003)
12 : Access2007 (Office2007)
Comme le dit Starec : un p'tit coup de F1
Les Cours et tutoriels pour apprendre Access, Les codes Sources Access, Le Forum Access, Offres d'emploi développeur Access et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
avec un code comme ça, ça ne marche pas non plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim Requete As String Requete = Me.ExterneSE.RowSource DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, Requete, "MonfichierExcel.xls"
j'ai cherché l'aide pour acSpreadsheetTypeExcel mais dans mon aide, ça s'arrête à 9. du coup, je l'avais pas trouvé.
Non
Dans Requete tu auras une chaine SQL, c'est une requête dans la fenêtre requête de la base de donnée.
Starec
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager