IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[Export] De Access vers Excel (2003)


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [Export] De Access vers Excel (2003)
    Bonjour,
    j'ai un soucis avec mon export de Access 2003 vers Excel 2003. (image jointe).
    Mes références sont bien cochées (image jointe) et le code de l'export est le suivant (pris dans un tutoriel de devellopez):
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Public Sub Export2Excel(SQL As String, Titre As String)
     
            Dim xlApp As Excel.Application
            Dim xlSheet As Excel.Worksheet
            Dim xlBook As Excel.Workbook
            Dim I As Long, J As Long
            Dim rec As Recordset
     
            Set rec = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot)
     
            'Initialisations
            Set xlApp = CreateObject("Excel.Application")
            Set xlBook = xlApp.Workbooks.Add
     
            'Ajouter une feuille de calcul
            Set xlSheet = xlBook.Worksheets.Add
            xlSheet.Name = "Export Excel"
     
            ' le titre
            '  écriture dans la cellule de ligne 1 et de colonne 1
            xlSheet.Cells(1, 1) = Titre
     
     
            ' les entetes
            '  .Fields(Index).Name renvoie le nom du champ
            For J = 0 To rec.Fields.Count - 1
                xlSheet.Cells(2, J + 1) = rec.Fields(J).Name
                ' Nous appliquons des enrichissements de format aux cellules
                With xlSheet.Cells(2, J + 1)
                    .Interior.ColorIndex = 15
                    .Interior.Pattern = xlSolid
                    .Borders(xlEdgeBottom).LineStyle = xlContinuous
                    .Borders(xlEdgeBottom).Weight = xlThin
                    .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
                    .HorizontalAlignment = xlCenter
                End With
            Next J
     
            ' recopie des données à partir de la ligne 3
            I = 3
            Do While Not rec.EOF
                For J = 0 To rec.Fields.Count - 1
                    ' .Fields(Index).Type renvoie le type du champ
                    '   si c'est un Texte (dbText) nous insérons "'" pour
                    '   qu'il soit reconnu par Excel comme du Texte
                    'If rec.Fields(J).Type = dbText Then
                        xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J)
                    'Else
                        'xlSheet.Cells(I, J + 1) = rec.Fields(J)
                    'End If
                Next J
                I = I + 1
                rec.MoveNext
            Loop
     
            ' code de fermeture et libération des objets
            xlBook.SaveAs "\test.xls"
            xlApp.Quit
            rec.close
            Set rec = Nothing
            Set xlSheet = Nothing
            Set xlBook = Nothing
            Set xlApp = Nothing
    End Sub
    Quelqu'un a-t-il trouver le problème ?
    Cordialement.
    Images attachées Images attachées   

  2. #2
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 222
    Points
    222
    Par défaut
    Salut,

    Quel message d'erreur ou anomalie as- tu?

    A première vue, la seule chose que je vois est le nom de fichier sur saveAs qui doit être reconstruit, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlBook.SaveAs Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & "test.xls"
    Comme tu utilises CreateObject, tu pourrais remplacer les trois premiers dim ainsi que le dim de Rec par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim xlApp As Object
            Dim xlSheet As Object
            Dim xlBook As Object
            Dim I As Long, J As Long
            Dim rec As Object
    Dans ce cas les liens sur les bibliothèques DAO, Excel et Office peuvent être retirés. ==> Cette syntaxe te permettrais de te détacher de la version d'excel ==>le code marcherait pour Excel 9, 10 et 11

    De toute façon , donnes plus de précisions sur ton anomalie

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci, pour ta réponse.

    Le problème est l'impossibilité pour Excel 2003 de lire le fichier généré par Access , cela doit être dû à un mauvais format.
    Ce qui est étranger c'est que Excel 2007 arrive à l'ouvrir même si il me dit que le format du fichier n'est pas un format reconnu.
    L'erreur que m'inscrit Excel est dans les fichiers joints au post.
    Cordialement.

    Mathieu

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ton chemin de sauvegarde de ton fichier Excel
    est bizarre, non ?

    Starec

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    En fait, j'aimerais sauvegardé le fichier la où se trouve le fichier Access mais il me le met autre part !


  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CurrentProject.Path & "\test.xls"
    Starec

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Pour le fichier c'est ok, il apparait bien là où il y a l'application.
    Merci.

    Malheureusement mon problème est toujours présent !
    Incompatibilité avec Excel 2003, il affiche des caractères bizarres.
    Excel 2007 me l'affiche correctement après un message d'avertissement me disant que ce n'est pas un fichier au bon format (.xls)


Discussions similaires

  1. Exporter graph ACCESS vers EXCEL
    Par taisherg dans le forum Access
    Réponses: 11
    Dernier message: 12/04/2016, 13h49
  2. [AC-2003] Erreur lors de l'exportation d'un formulaire Access vers Excel 2003
    Par jabulon dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/08/2010, 09h59
  3. Export etat access vers excel en gardant la mise en page
    Par Maxi-môme dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/08/2007, 12h34
  4. exportation d'access vers excel
    Par ptitemel dans le forum Access
    Réponses: 2
    Dernier message: 30/06/2006, 09h18
  5. Exportation de Access vers Excel
    Par charleshbo dans le forum Access
    Réponses: 6
    Dernier message: 10/03/2006, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo