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

Access Discussion :

[DDE]Exporter vers Excel dans une feuille spécifique


Sujet :

Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut [DDE]Exporter vers Excel dans une feuille spécifique
    Bonjour,

    Pour exporter le résultat d'une requête vers Excel, j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TransfertExportExcel_Click()
    DoCmd.TransferSpreadsheet acExport, _
                        acSpreadsheetTypeExcel9, _
                        "NomRequete", _
                        (CurrentProject.Path & "\NomFichier.xls"), _
                        True
     End Sub
    Cette procédure exporte le résultat dans une nouvelle feuille du classeur Excel spécifié ce qui me convient.

    Pour une autre utilisation du classeur Excel, j'ai un utilisateur qui souhaite que l'export se fasse dans la feuille 1 du classeur ; comment désigner le nom de la feuille de destination ? Peut-être avec Sheets mais je n'arrive pas placer cela dans mon code.

    Question complémentaire : peut-on désigner de la même manière une feuille par son nom dans le classeur Excel ?

    Merci d'avance à ceux qui auraient des idées à me proposer.

    Bonne journée.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    a la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub TransfertExportExcel_Click()
    DoCmd.TransferSpreadsheet acExport, _
                        acSpreadsheetTypeExcel9, _
                        "NomRequete", _
                        (CurrentProject.Path & "\NomFichier.xls"), _
                        True, _
                        "Feuil1"
     End Sub

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut Comment exporter vers Excel en nommant la feuille de destination ?
    Bonjour,

    Merci helas pour ta réponse.

    J'ai testé. Le résultat n'est pas celui demandé.

    Ajouter "Feuil1" au bout de ma ligne de code crée une nouvelle feuille nommée Feuil1 dans laquelle s'exporte le résultat de ma requête. Je me retrouve donc avec 2 feuilles ayant le même nom dans le classeur Excel.

    Une autre idée à me suggérer ?

    Bonne journée.

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    testé, je n'ai qu'une feuil1 (Access2002 vers Excel2002) qui est écrasée si je renouvelle la commande
    désolé, je n'ai pas la réponse

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Une piste, je viens de faire cet essai, ça marche:

    - Dans ton fichier Excel, sur la feuil1, tu définis un nom de (Insertion /Nom / définir) que tu nommes "Feuil1"

    - Dans Access, tu créées une requete nommée "Feuil1" (pas pris le temps d'essayer l'argument proposé par Helas, je suppose que cela évitera de nommer la requete ainsi)

    - Je fais l'export (je l'ai fait à la main, pas testé en VBA)


    ça marche


    EN espérant que cette piste soit la bonne, bon courage

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

    Juste une suggestion, je n'ai pas testé

    Si avec le nom de ton fichier tu mettais le nom de l'onglet

    Je n'ai pas testé, peut-être que le ! est bon

    Starec

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    Précision : je travaille avec Access 3003 et Excel 2003.

    J'ai testé les solutions proposées :
    - celle proposée par mout1234 me crée toujours une nouvelle feuille du nom indiqué en fin de ligne de code
    - celle proposée par Starec donne un message "Erreur d'exécution '3027'. Mise à jour impossible. La base de données ou l'objet est en lecture seule." alors que mon fichier Excel n'est pas ouvert.
    - la solution proposée par helas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "NomRequete", (CurrentProject.Path & "/Exportation.xls"), True, "Feuil1"
    crée une feuille nommée "Feuil11" ; en fait, j'avais mal lu le nom de l'onglet avant d'écrire mon post ; c'est cette "Feuil11" qui est écrasée à chaque exécution de la commande.

    Faut-il en conclure qu'il est impossible de spécifier la feuille de destination lors de l'export ?

    Si quelqu'un a une autre idée je suis preneur.

    Bonne journée.

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

    Sinon je te propose deux autres solutions :

    1 - Ce tuto de Caféine : http://cafeine.developpez.com/access/tutoriel/excel/
    où tu auras plusieurs solution

    3 - Ce tuto de Silkyroad pour écrire par VBA dans des classeurs
    http://silkyroad.developpez.com/VBA/ClasseursFermes/


    Starec

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut
    Bonjour,

    Merci Starec pour ta réponse.

    Effectivement le tuto de Caféine précise dans les limites de TransfertSpreadSheet qu'il est "impossible de préciser un nom d'onglet, ou une plage de cellules"

    En fait l'aide d'Access indique qu'il n'est pas possible de préciser une plage de cellules pour l'export mais ne dit rien pour le nom de l'onglet.

    Merci pour l'info sur les tutos (j'aurais du les trouver ) ; je pense qu'il y a ce qu'il me faut dedans.

    Bonne journée et merci à tous ceux qui m'ont fait des suggestions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Création d'une requête et export vers Excel sur une feuille donnée
    Par nola38 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/01/2014, 15h23
  2. [AC-2007] Export résultat d'une requête dans Excel dans une feuille précise
    Par illight dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/10/2013, 15h23
  3. Exporter un gridview dans une feuille excel
    Par Laugeek dans le forum ASP.NET
    Réponses: 15
    Dernier message: 09/09/2010, 13h56
  4. [AC-2007] Exporter plusieurs tables dans UNE feuille Excel
    Par Bristow47 dans le forum VBA Access
    Réponses: 8
    Dernier message: 06/07/2010, 08h00
  5. [AC-2003] Comment exporter un module dans une feuille Excel?
    Par SunRay dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/10/2009, 16h23

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