Export Excel depuis Access et exécution d'une macro
Plunk
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à coder quelque chose dans Access 2000 qui m'a l'air assez compliqué, et je me demande déjà si c'est possible.
Je dois écrire un programme qui exporte une table de données Access vers un fichier Excel, puis qui exécute automatiquement une macro sur le fichier Excel tout en le créant. En fait, lors de mon export, Excel ajoute automatiquement des apostrophes devant toutes les données qui sont en format texte, et je souhaite les enlever à l'aide d'un bout de code qui change le format des cellules concernées (la première colonne) en standard plutôt qu'en texte.
J'ai le code pour changer le format (récupéré à partir d'une macro, donc ; j'ai utilisé le menu Convertir dans Excel), j'ai le code pour l'export (j'utilise DoCmd.TransferSpreadsheet), et je cherche donc à ce que ces apostrophes soient supprimées directement depuis Access, en même temps que la création du fichier d'export Excel.
Est-ce que je lui en demande trop ? :D
Merci d'avance
Je cherche à coder quelque chose dans Access 2000 qui m'a l'air assez compliqué, et je me demande déjà si c'est possible.
Je dois écrire un programme qui exporte une table de données Access vers un fichier Excel, puis qui exécute automatiquement une macro sur le fichier Excel tout en le créant. En fait, lors de mon export, Excel ajoute automatiquement des apostrophes devant toutes les données qui sont en format texte, et je souhaite les enlever à l'aide d'un bout de code qui change le format des cellules concernées (la première colonne) en standard plutôt qu'en texte.
J'ai le code pour changer le format (récupéré à partir d'une macro, donc ; j'ai utilisé le menu Convertir dans Excel), j'ai le code pour l'export (j'utilise DoCmd.TransferSpreadsheet), et je cherche donc à ce que ces apostrophes soient supprimées directement depuis Access, en même temps que la création du fichier d'export Excel.
Est-ce que je lui en demande trop ? :D
Merci d'avance
A voir également:
- Export Excel depuis Access et exécution d'une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Si et excel - Guide
5 réponses
Bonjour,
j'ai le code pour l'export (j'utilise DoCmd.TransferSpreadsheet), pouvez-vous montrer la ligne complete??
j'ai le code pour l'export (j'utilise DoCmd.TransferSpreadsheet), pouvez-vous montrer la ligne complete??
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, NomTableRequête, NomFichierExport, True, NomOnglet
NomTableRequête, NomFichierExport et NomOnglet sont des variables. Ce bout de code est dans une fonction que je n'ai pas écrite, en fait.
Bonjour,
votre code est bon. chez moi, je n'ai pas les doubles cotes a l'export d'une table, mais je sais que cela arrive. Me souviens plus si c'est lie ou pas aux versions Office.
votre code est bon. chez moi, je n'ai pas les doubles cotes a l'export d'une table, mais je sais que cela arrive. Me souviens plus si c'est lie ou pas aux versions Office.
J'ai trouvé un moyen de résoudre mon problème, après pas mal de tâtonnements et en utilisant l'Automation Excel. Voici le code de ma fonction tueuse d'apostrophes (qui peut encore se simplifier, d'ailleurs) :
Function ApostropheKiller(NomFichierExport As String) Dim oAppExcel As Excel.Application Dim oClasseur As Excel.Workbook Dim oFeuille As Excel.Worksheet 'Ouvre le fichier excel Set oAppExcel = CreateObject("Excel.Application") Set oClasseur = oAppExcel.Workbooks.Open(NomFichierExport) 'Sélectionne la première feuille Set oFeuille = oClasseur.Worksheets(1) 'Macro pour virer les apostrophes oFeuille.Columns("A:A").TextToColumns Destination:=oFeuille.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 1), TrailingMinusNumbers:=True 'Sélectionne la deuxième feuille Set oFeuille = oClasseur.Worksheets(2) oFeuille.Columns("A:A").TextToColumns Destination:=oFeuille.Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 1), TrailingMinusNumbers:=True 'Ferme Excel oClasseur.Save oClasseur.Close oAppExcel.Quit Set oAppExcel = Nothing Set oClasseur = Nothing Set oFeuille = Nothing End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question