J'ai implémenter un module d'export vers Excel dans un programme récent.
Tout fonctionne parfaitement mais les données récupérées sont (quelque soit
leur format d'origine dans ma table Access) systématiquement précédées d'une
apostrophes dans Excel qui les interprète donc comme du texte ce qui est très
ennuyeux pour les traitements ultérieurs.
J'ai donc imaginé d'effectuer directement au moment de l'export un copier /
collage spécial / valeurs dans un nouvel onglet (ce qui fonctionne très bien
dans Excel et supprime toutes les apostrophes).
Malheureusement, impossible de gérer dans Access les paramètres de
PasteSpecial applicables dans Excel ("Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks:=False, Transpose:=False") .
Comment résoudre ce problème (cf code ci-dessous) ?
Merci d'avance !
Snoopy
[...]
Dim xlApp As Excel.Application 'Application Excel
Dim xlwb As Excel.Workbook 'Classeur Excel
Dim xlws As Excel.Worksheet 'Feuille Excel
Dim xlws_new As Excel.Worksheet 'Nouvelle feuille Excel ajoutée
'Ouverture de l'application
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
'Ouverture d'un fichier Excel
Set xlwb = xlApp.Workbooks.Open(cheminRepExport & "\" & site &
"_Artcls_Export_" & Date & ".xls")
' xlws correspond à la feuille "articles_export" du classeur
Set xlws = xlwb.Worksheets("articles_export")
xlws.Cells.Select
xlws.Cells.Copy
' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au
classeur
Set xlws_new = xlwb.Worksheets.Add
xlws_new.Name = "artcls_export"
xlws_new.Range("A1").Select
xlws_new.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False ' ne fonctionne pas sous Access !!!
xlws.Delete
xlwb.Save
xlwb.Close 'Fermeture du classeur Excel
xlApp.Quit 'Fermeture de l'application Excel
'Désallocation mémoire
Set xlws = Nothing
Set xlws_new = Nothing
Set xlwb = Nothing
Set xlApp = Nothing
' xlws correspond à la feuille "articles_export" du classeur Set xlws = xlwb.Worksheets("articles_export") xlws.Cells.Copy ' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au classeur Set xlws_new = xlwb.Worksheets.Add xlws_new.Name = "artcls_export" xlws_new.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse ' ne fonctionne pas sous Access !!!
xlws.Delete
Je pense que celà devrait mieux fonctionner
Dis moi !!!!!
Salut à toi
Si tu mets :
xlws.Cells.Copy
Tu dois obligatoirement mettre :
xlws_new.Cells.Select
et non
xlws_new.Range("A1").Select
Ce qui donne :
' xlws correspond à la feuille "articles_export" du classeur
Set xlws = xlwb.Worksheets("articles_export")
xlws.Cells.Select
xlws.Cells.Copy
' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au
classeur
Set xlws_new = xlwb.Worksheets.Add
xlws_new.Name = "artcls_export"
' xlws correspond à la feuille "articles_export" du classeur
Set xlws = xlwb.Worksheets("articles_export")
xlws.Cells.Copy
' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au
classeur
Set xlws_new = xlwb.Worksheets.Add
xlws_new.Name = "artcls_export"
xlws_new.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse ' ne fonctionne pas sous Access !!!
' xlws correspond à la feuille "articles_export" du classeur Set xlws = xlwb.Worksheets("articles_export") xlws.Cells.Copy ' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au classeur Set xlws_new = xlwb.Worksheets.Add xlws_new.Name = "artcls_export" xlws_new.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse ' ne fonctionne pas sous Access !!!
xlws.Delete
Je pense que celà devrait mieux fonctionner
Dis moi !!!!!
smirsnof
Le vendredi 12 Février 2010 à 09:53 par CybSnoopy :
Access 2003 Bonjour, J'ai implémenter un module d'export vers Excel dans un programme récent. Tout fonctionne parfaitement mais les données récupérées sont (quelque soit leur format d'origine dans ma table Access) systématiquement précédées d'une apostrophes dans Excel qui les interprète donc comme du texte ce qui est très ennuyeux pour les traitements ultérieurs. J'ai donc imaginé d'effectuer directement au moment de l'export un copier / collage spécial / valeurs dans un nouvel onglet (ce qui fonctionne très bien dans Excel et supprime toutes les apostrophes). Malheureusement, impossible de gérer dans Access les paramètres de PasteSpecial applicables dans Excel ("Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse") . Comment résoudre ce problème (cf code ci-dessous) ? Merci d'avance ! Snoopy [...] Dim xlApp As Excel.Application 'Application Excel Dim xlwb As Excel.Workbook 'Classeur Excel Dim xlws As Excel.Worksheet 'Feuille Excel Dim xlws_new As Excel.Worksheet 'Nouvelle feuille Excel ajoutée 'Ouverture de l'application Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False 'Ouverture d'un fichier Excel Set xlwb = xlApp.Workbooks.Open(cheminRepExport & "" & site & "_Artcls_Export_" & Date & ".xls") ' xlws correspond à la feuille "articles_export" du classeur Set xlws = xlwb.Worksheets("articles_export") xlws.Cells.Select xlws.Cells.Copy ' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au classeur Set xlws_new = xlwb.Worksheets.Add xlws_new.Name = "artcls_export" xlws_new.Range("A1").Select xlws_new.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse ' ne fonctionne pas sous Access !!! xlws.Delete xlwb.Save xlwb.Close 'Fermeture du classeur Excel xlApp.Quit 'Fermeture de l'application Excel 'Désallocation mémoire Set xlws = Nothing Set xlws_new = Nothing Set xlwb = Nothing Set xlApp = Nothing
En effet. Si tu mets : xlws.Cells.Copy Tu dois obligatoirement mettre : xlws_new.Cells.Select Pour eviter d'écraser les données dans le tableau Samuel Laidi
Le vendredi 12 Février 2010 à 09:53 par CybSnoopy :
Access 2003 Bonjour, J'ai implémenter un module d'export vers Excel dans un programme récent. Tout fonctionne parfaitement mais les données récupérées sont (quelque soit leur format d'origine dans ma table Access) systématiquement précédées d'une apostrophes dans Excel qui les interprète donc comme du texte ce qui est très ennuyeux pour les traitements ultérieurs. J'ai donc imaginé d'effectuer directement au moment de l'export un copier / collage spécial / valeurs dans un nouvel onglet (ce qui fonctionne très bien dans Excel et supprime toutes les apostrophes). Malheureusement, impossible de gérer dans Access les paramètres de PasteSpecial applicables dans Excel ("Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse") . Comment résoudre ce problème (cf code ci-dessous) ? Merci d'avance ! Snoopy [...] Dim xlApp As Excel.Application 'Application Excel Dim xlwb As Excel.Workbook 'Classeur Excel Dim xlws As Excel.Worksheet 'Feuille Excel Dim xlws_new As Excel.Worksheet 'Nouvelle feuille Excel ajoutée 'Ouverture de l'application Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False 'Ouverture d'un fichier Excel Set xlwb = xlApp.Workbooks.Open(cheminRepExport & "" & site & "_Artcls_Export_" & Date & ".xls") ' xlws correspond à la feuille "articles_export" du classeur Set xlws = xlwb.Worksheets("articles_export") xlws.Cells.Select xlws.Cells.Copy ' xlws_new correspond à la nouvelle feuille "artcls_export" ajoutée au classeur Set xlws_new = xlwb.Worksheets.Add xlws_new.Name = "artcls_export" xlws_new.Range("A1").Select xlws_new.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse ' ne fonctionne pas sous Access !!! xlws.Delete xlwb.Save xlwb.Close 'Fermeture du classeur Excel xlApp.Quit 'Fermeture de l'application Excel 'Désallocation mémoire Set xlws = Nothing Set xlws_new = Nothing Set xlwb = Nothing Set xlApp = Nothing
En effet. Si tu mets : xlws.Cells.Copy Tu dois obligatoirement mettre : xlws_new.Cells.Select Pour eviter d'écraser les données dans le tableau Samuel Laidi