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 :

Mise en forme fichier excel après une exportation [AC-365]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2012
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2012
    Messages : 155
    Points : 95
    Points
    95
    Par défaut 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
    Nom : T_Circuits.jpg
Affichages : 164
Taille : 70,5 Ko

    Feuille excel Circuits.xls
    Nom : Circuits.xls.jpg
Affichages : 136
Taille : 60,3 Ko

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 629
    Points : 14 595
    Points
    14 595
    Par défaut
    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 ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2012
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2012
    Messages : 155
    Points : 95
    Points
    95
    Par défaut
    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

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 592
    Points : 34 247
    Points
    34 247
    Par défaut
    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/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

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

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    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
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2012
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2012
    Messages : 155
    Points : 95
    Points
    95
    Par défaut
    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.

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

Discussions similaires

  1. [XL-2003] Macro supprimer des classeurs Excel après une exportation
    Par greenfire15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2012, 10h54
  2. Mettre en forme un fichier Excel après une requête
    Par Tofalu dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/12/2010, 22h18
  3. Mise en forme fichier excel vbscript
    Par juzii dans le forum VBScript
    Réponses: 1
    Dernier message: 15/04/2010, 18h00
  4. mise en forme fichier excel depuis code vba (Access 2003)
    Par Kass4r dans le forum VBA Access
    Réponses: 8
    Dernier message: 11/04/2008, 11h38
  5. Réponses: 1
    Dernier message: 16/03/2007, 10h30

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