Export Access vers Excel

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FFO
Le #21181271
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_new.Cells.Select
xlws_new.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse

xlws.Delete

Ou plus simple :

' 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 !!!!!
Publicité
Poster une réponse
Anonyme