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 :

Transferspreadsheet + ajout Onglet


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut Transferspreadsheet + ajout Onglet
    bonjour à tous

    j'ai actuellement une application ACCESS qui exporte le resultat d'une requête dans Excel en utilisant la commande transferspreadsheet
    et qui fonctionne

    le fichier XL et l'Onglet sont créés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ' creation req tempo pour pouvoir exporter fic XL 
    ' nom_fic = chemins + non fichier 
    ' nom_feuil = nom de la feuille Xl
     
    Set rtemp = db.CreateQueryDef(Nom_feuil, stSql)
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, Nom_feuil, nomfic, True
    Maintenant je souhaite mensuellement réaliser les manips suivantes dans un fichier XL référence qui contiendra

    - un sommaire (actualisé à chaque ajout ou suppression d'onglet) depuis Access
    - un onglet par mois (ex 2011_01,2011_02...), l'onglet sera mis en forme à partir d'Access

    Remarques :
    Le fichier sera consultable et modifiable par plusieurs utilisateurs.
    Sommaire avec lien hypertexte: OK je sais faire depuis ACCESS
    Mise en forme du contenu de l'onglet: OK

    ANOMALIE :

    Lorsque j'utilise le code précédent pour transférer les données de plusieurs mois dans un fichier ayant déjà un Sommaire et un onglet (ex 2010-01) je rencontre les problèmes suivants:
    • Pas de création de nouvel onglet
    • l'export écrase le contenu de l'onglet actif lors du dernier enregistrement du fichier XL, pourtant le nom de l'onglet est différent du nom (Nom_feuil) passé en paramètre


    Questions :
    • Est-ce que je confonds nom de l'onglet et nom de feuille dans la commande transfert ?
    • Peux-t'on forcer la création d'un nouvel onglet (feuille) lors du transfert ?
    • ?


    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Il n'ya pa pas de notion d'onglet (ou de nom de feuille - c'est la même chose) dans la méthode TransferSpreadsheet mais seulement la possibilité de poser tes valeurs dans une plage existante (si nommée) ou une plage cible (e.g. $B$4).

    Si tu veux créer (ajouter) ou exploiter/manipuler un onglet spécifique, il faut user d'OLE automation, créer ou ouvrir le classeur (à partir d'un XLT au cas où tu créés) et d'enrichir la feuille comme souhaité (par exemple avec un CopyFromRecordset).

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut
    merci argyronet.

    ..Ca fonctionne OK pour CopyFromRecordset, seulement il faut rajouter l'entête des colonnes (avec du code )

    Encore merci

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Oui, bien tu prends ton recordset et tu fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                For F = 0 To oRS.Fields.Count - 1
                    With XLWorkbook.Worksheets(2).Cells(1, F + 1)
                        .Value = oRS.Fields(F).Name
                        .Font.Bold = True
                    End With
                Next
    Par exemple...
    Mais tu avais trouvé je suppose

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 11
    Par défaut
    Merci

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

Discussions similaires

  1. Ajout onglet en mode formulaire
    Par justine91 dans le forum Macros Access
    Réponses: 7
    Dernier message: 18/02/2014, 22h16
  2. Ajouter Onglet ribbon dans Outlook
    Par toss.net dans le forum VSTO
    Réponses: 10
    Dernier message: 18/02/2013, 09h43
  3. Réponses: 3
    Dernier message: 05/10/2012, 10h30
  4. Réponses: 3
    Dernier message: 20/03/2012, 11h47

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