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 :

Mise en forme fichier excel après une exportation


Sujet :

VBA Access

  1. #1
    Membre régulier
    Mise en forme fichier excel après une exportation
    Bonjour,
    J'ai créée un petit formulaire pour l'exportation de tables access vers excel avec l'aide d'un code de Christophe WARIN.
    J'ai une table access T_Circuits avec 2 champs numériques et 1 champ Date/Heure dont le format n'est pas concervé dans le fichier excel. (encadré en rouge dans les copies écran)
    Il y a t'il une solution pour corriger ce problème.
    Merci d'avance de votre aide.

    Jean Marc
    Code
    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
    Private Enum CouleurFond
      cfBleu = 16764057
      cfrouge = 10079487
      cfvert = 13434828
      cfjaune = 10092543
      cfbordeau = 128
      cfblanc = 16777215
    End Enum
    Private Sub cmd_Adherents_Click()
    Dim oAppExcel As Excel.Application
    Dim oClasseur As Excel.Workbook
    Dim oFeuille As Excel.Worksheet
    Dim oCell As Excel.Range
    Dim i As Integer
    txtChemin1 = Environ("USERPROFILE") & "\Documents-JM\BASE\Access\Exercices\Balirando-access\Export\Circuits.xls"
    If Nz(txtChemin1, "") = "" Then
      MsgBox "Sélectionner une destinations"
     Else
      'Exporter
      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_Circuits", txtChemin1, True
      'Ouvre le fichier excel
      Set oAppExcel = CreateObject("Excel.Application")
      Set oClasseur = oAppExcel.Workbooks.Open(txtChemin1)
      'Sélectionne la première feuille
      Set oFeuille = oClasseur.Worksheets(1)
      'Parcours les cellules de la première ligne
      i = 1
      While oFeuille.Cells(1, i).Value <> ""
        Set oCell = oFeuille.Cells(1, i)
        'définit le gras
        oCell.Font.Bold = chkGras
        'définit l'italic
        oCell.Font.Italic = ChkItalic
        'Définit la couleur du texte
        Select Case Nz(TxtCouleurtexte, "")
          Case "Bleu": oCell.Font.Color = vbBlue
          Case "Rouge": oCell.Font.Color = vbRed
          Case "Vert": oCell.Font.Color = vbGreen
          Case "Bordeau": oCell.Font.Color = vbbordeau
          Case "Blanc": oCell.Font.Color = vbWhite
          Case Else: oCell.Font.Color = vbYellow
        End Select
        'Définit la couleur de fond
        Select Case Nz(txtCouleurFond, "")
          Case "Bleu": oCell.Interior.Color = cfBleu
          Case "Rouge": oCell.Interior.Color = cfrouge
          Case "Vert": oCell.Interior.Color = cfvert
          Case "Bordeau": oCell.Interior.Color = cfbordeau
          Case "Blanc": oCell.Interior.Color = cfblanc
          Case Else: oCell.Interior.Color = cfjaune
        End Select
        'Ajuste la taille des colonnes au texte
        oCell.EntireColumn.AutoFit
        i = i + 1
      Wend
      'Ferme Excel
      oClasseur.Save
      oClasseur.Close
      oAppExcel.Quit
      Set oAppExcel = Nothing
      Set oClasseur = Nothing
      MsgBox "fini"
     End If
    End Sub


    Table access T_Circuits


    Feuille excel Circuits.xls

  2. #2
    Expert éminent sénior
    bonsoir,
    l'exportation vers Excel ne voit pas les formats définis dans les champs des tables, il faut passer par une requête:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT Format([distAR],"#\.# Kms") AS [Distance AR], Format([duree],"Short Time") AS Durée FROM T_Circuits;
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  3. #3
    Membre régulier
    Bonjour tee_grandbois,

    Merci pour ta solution qui fonctionne parfaitement, encore une question, peut on de la même façon adapter le format de la police sue le fichier Excel.

    Encore merci.

    Bonne journée

    Jean Marc.

  4. #4
    Rédacteur/Modérateur

    Salut,

    tu peux effectivement faire cela, ca te prendra par contre un peu de code pour manipuler Excel.

    Dans les grandes lignes :
    - export des données dans le fichier XL
    - ouverture du fichier XL par le code
    - modification du format dans la colonne concernée
    - enregistrement et fermeture du classeur XL
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre régulier
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    tu peux effectivement faire cela, ca te prendra par contre un peu de code pour manipuler Excel.

    Dans les grandes lignes :
    - export des données dans le fichier XL
    - ouverture du fichier XL par le code
    - modification du format dans la colonne concernée
    - enregistrement et fermeture du classeur XL
    Bonjour,
    Merci pour l'info, je vais voir ça, donc si j'ai bien compris c'est dans excel que ça ce passe après l'exportation avec acces.
    Bonne journée.
    Jean Marc.

###raw>template_hook.ano_emploi###