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 :

Dimensionnement tableau Excel depuis Access [AC-2000]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Par défaut Dimensionnement tableau Excel depuis Access
    Bonjour,

    Je ne parviens pas à redimensionner un tableau Excel créer depuis Access.

    La création du tableau fonctionne très bien et à la fin de la procédure, Excel n'est plus en mémoire.

    Lorsque je rajoute du code pour redimensionner les colonnes ou affecter un nouveau libellé, je ne parviens plus à ouvrir le fichier Excel et de plus, même en refermant Excel, il demeure en mémoire (cf. lignes 36 à 38).

    Une idée ?

    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
    '---------------------------------------------------------------------------------------
    ' Procédure : cmdExportExcel_Click
    ' Autheur   : Gabout
    ' Date      : 07/10/2011
    ' Utilité   : exporter les données vers Excel
    '---------------------------------------------------------------------------------------
    Private Sub cmdExportExcel_Click()
      ' declarer les variables
      Dim qd As QueryDef
      Dim sSQL As String
      Dim sFic As String
      Dim xlApp As Excel.Application
      Dim xlSheet As Excel.Worksheet
      Dim xlBook As Excel.Workbook
      ' verifier si la requete existe et la supprimer si c'est le cas
      If testQuery("Requete_Temporaire") = True Then DoCmd.DeleteObject acQuery, "Requete_Temporaire"
      ' créer la requete
      sSQL = "SELECT tFAM.famlib, tART.artid, tART.artlib, tDET.detref, tDET.dettai, tUNI.unilib, tDET.detpuht, '' AS Quantité " & _
             "FROM tUNI INNER JOIN (tFAM INNER JOIN (tART INNER JOIN tDET ON tART.artid = tDET.detart) ON tFAM.famid = tART.artfam) ON tUNI.uniid = tART.artuni " & _
             "WHERE tART.artact=Yes " & _
             "ORDER BY tART.artid;"
      Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", sSQL)
      ' nommer le fichier d'export
      sFic = CurrentProject.Path & "\EXP_" & Format(DMax("[hisdat]", "tHIS"), "yyyymmdd") & ".xls"
      ' exporter la requete
      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", sFic
      ' effacer la requete
      DoCmd.DeleteObject acQuery, "Requete_Temporaire"
      ' instancifier
      Set xlApp = CreateObject("Excel.application")
      Set xlBook = xlApp.Workbooks.Open(sFic)
      'Set xlSheet = xlBook.Worksheets("Requete_Temporaire")
     
    ' C'EST A PARTIR DE CE RAJOUT DE 3 LIGNES QUE CELA COINCE :
    ' EXCEL EST TOUJOURS EN MEMOIRE ET LES DONNEES N'APPARAISSENT PAS
      Sheets("Requete_Temporaire").Select
      Range("A1").FormulaR1C1 = "Catégorie"
      Columns("A:A").ColumnWidth = 28
    ' SI JE SUPPRIME LES 3 LIGNES, PLUS DE PROBLEME : EXCEL N'EST
    ' PLUS EN MEMOIRE
      '
      ' fermeture
      xlBook.Save
      xlApp.Quit
      Set xlSheet = Nothing
      Set xlBook = Nothing
      Set xlApp = Nothing
    End Sub

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Essaie comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      ' instancifier
      Set xlApp = CreateObject("Excel.application")
      Set xlBook = xlApp.Workbooks.Open(sFic)
      Set xlSheet = xlBook.Worksheets("Requete_Temporaire")
     
      xlSheet.Range("A1").FormulaR1C1 = "Catégorie"
      xlSheet.Columns("A:A").ColumnWidth = 28
     
      ' fermeture
      xlBook.Save
      Set xlSheet = Nothing
      Set xlBook = Nothing
      xlApp.Quit
      Set xlApp = Nothing
    Ce que j'ai changé :
    Pas de codage implicite (utilisation de Sheets, Range ou Columns sans désigner d'objet).
    Libération des variables objet Excel dans l'ordre inverse de leur initialisation.
    C'est à dire du membre le plus éloigné de Excel.Application (xlSheet) vers le membre le plus proche (xlApp).

    A+

  3. #3
    Membre Expert Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Par défaut
    Nickel, merci LedZeppII

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/08/2014, 15h05
  2. [AC-2002] Créer un tableau croisé dynamique dans Excel depuis Access
    Par dut-dut dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/11/2010, 13h42
  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