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 :

Excel depuis Access


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut Excel depuis Access
    Bonjour,

    je sais que c'est un sujet récurrent mais je ne trouve pas de réponse à mon problème :

    en fait j'arrive très bien à exporter vers excel, mais je n'arrive pas à insérer de lignes dans excel :
    je ne comprends pas, je suis pas bon, ca m'a l'air pourtant très simple !!!

    Je passe directement au code si jamais qqchose vous choque



    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
    Set qd = CurrentDb.CreateQueryDef(num_article_EF_article, requete_document_de_article)
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, num_article_EF_article, CHEMIN_FICHIER_INDEX_DE_CONFIGURATION
        DoCmd.DeleteObject acQuery, num_article_EF_article
     
        Call mise_en_forme_feuille_excel(num_article_EF_article)
     
    End Sub
     
    Private Sub mise_en_forme_feuille_excel(nom_feuille)
    Dim xlApp ' As Excel.Application
        Dim xlSheet  ' As Excel.Worksheet
        Dim xlBook ' As Excel.Workbook
        Dim fichier_index_de_conf As String
     
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open(CHEMIN_FICHIER_INDEX_DE_CONFIGURATION)
     
        Set xlSheet = xlBook.Worksheets(nom_feuille)
     
         xlSheet.Rows("1:1").Select ' c'est la que je me fais jeter, je souhaite insérer 2 lignes en début de chaque feuille
         Selection.Insert Shift:=xlDown
         Selection.Insert Shift:=xlDown
     
        'Code de fermeture
        xlBook.Save
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
    End Sub
    Ca passe pour la première feuille, mais pour la deuxième, j'ai droit à :
    La méthode Select de l'objet Range a échoué

    je sais pas pourquoi il reconnait pas "rows", la seconde fois, j'oublie peut etre de fermer qqchose !! ou peut -etre dois-je déselectionner la ligne de la feuille précédente ?

    Merci d'avance

    PS : j'ai bien été dans
    http://access.developpez.com/faq/?page=Excel
    mais ne voit pas ou est mon problème

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    Personne me répond, personne ne m'aime,
    snif snif

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt

    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         xlSheet.Rows("1:1").Insert Shift:=xlDown
         xlSheet.Rows("1:1").Insert Shift:=xlDown
    Les Select c'est pas terrible en automation.
    D'autant que tu ne précisait pas d'où venait <Selection>.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    Ca marche, merci par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D'autant que tu ne précisait pas d'où venait <Selection>.
    Comprends pas ?

    Merci bcp

    Autre question :
    a ton avis, j'ai un document excel à mettre en forme, y a t-il une doifférence entre le faire depuis access ou executer une macro excel ?
    différence de rapidité, de fiabilité, de simplicité ?

    est-ce que je risque de me prendre souvant la t^te sur ce genre de truc ...

    Moi je pensais qu'en incluant la biblio excel dans acces, j'avais exactement les mêmes objets avec les mêmes méthodes ...
    donc que je n'avais plus qu'à copier coller des bouts de code de macros excel ...
    Suis-je loin de la réalité ?

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par Australia
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D'autant que tu ne précisait pas d'où venait <Selection>.
    Comprends pas ?
    Selection c'est un mot clé Excel, donc pour y faire appel il le faut le préfixer avec le nom de ton appli excel (ou le classeur, ou la feuille, bref un objet excel):
    Citation Envoyé par Australia
    a ton avis, j'ai un document excel à mettre en forme, y a t-il une doifférence entre le faire depuis access ou executer une macro excel ?
    différence de rapidité, de fiabilité, de simplicité ?
    C'est toujours plus rapide depuis excel, tu n'est pas ralenti par la communication entre Access et Excel qui a lieu a chaque appel de fonction (d'où l'intérêt de virer les Select et d'agir directement sur des objets identifiés pour accélérer tout ça : une instruction vaut mieux que deux).

    Citation Envoyé par Australia
    Moi je pensais qu'en incluant la biblio excel dans acces, j'avais exactement les mêmes objets avec les mêmes méthodes ...
    donc que je n'avais plus qu'à copier coller des bouts de code de macros excel ...
    Suis-je loin de la réalité ?
    Il faut au minimum correctement préfixer tes appels aux objets, méthodes et propriétés d'Excel.
    Que Access sache sur quel application Excel tu lui demande d'agir, sinon il agit sur le premier classeur qu'il trouve et comme c'est pas proprement libéré à la fin et ben ça bloque...

    Sinon les macros générées sous Excel ont l'inconvénient de tout code généré : que ce soit sous Excel ou sous Access il faut les retravailler un peu pour qu'elles soient fiables.

    Bye.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    ok, merci beaucoup,
    tu m'as bien éclairé

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

Discussions similaires

  1. Suppression feuille Excel depuis access
    Par clad523 dans le forum Access
    Réponses: 1
    Dernier message: 15/12/2005, 11h09
  2. Réponses: 2
    Dernier message: 07/12/2005, 12h05
  3. comment fermer un fichier Excel depuis Access?
    Par audrey_desgres dans le forum Access
    Réponses: 14
    Dernier message: 21/06/2005, 12h43
  4. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 11h47
  5. imprimer feuille excel depuis access
    Par Jean Bonnisme dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2004, 08h46

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