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 :

Extraction sur Excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 129
    Par défaut Extraction sur Excel
    Bonjour, j'ai réaliser une base de données sur Access.

    Je dois faire un formulaire qui extrait les données d'une requete Access sur Excel suivant le jour que l'on selectionne dans une zone de liste, c'est-a-dire que cela extrait que les données du jour selectionnné.

    Or quand je selectionne mon jour, et que je veux extraire, aucune donnée apparait dans le fichier Excel a part le nom des colonnes.

    Voici mon 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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Dim I As Long, J As Long
        Dim t0 As Long, t1 As Long
     
        t0 = Timer
        Dim rec As Recordset
        Dim sql As String
        sql = "SELECT Saisie.date, Saisie.machine, Saisie.causes, Saisie.heuredebut, Saisie.heurefin, [heurefin]-[heuredebut]*1 AS duree FROM Saisie WHERE Saisie.date=" & liste1.Value & " order by 2 desc;"
     
        Set rec = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
        'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
       xlApp.Visible = True
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "Pannes"
     
     
     
     
        ' le titre
        '  écriture dans la cellule de ligne 1 et de colonne 1
        xlSheet.Cells(1, 3) = "Liste des pannes"
     
         With xlSheet.Cells(1, 3)
                .Font.Size = 16
                .Font.Name = "Times New Roman"
     
     
        End With
     
        ' les entetes
        ' .Fields(Index).Name renvoie le nom du champ
        For J = 0 To rec.Fields.Count - 1
           xlSheet.Cells(3, J + 1) = rec.Fields(J).Name
     
     
          xlSheet.Columns.ColumnWidth = 15
     
            ' Nous appliquons des enrichissements de format aux cellules
            With xlSheet.Cells(3, J + 1)
                .Font.Size = 12
                .Font.Name = "Times New Roman"
                .Font.Bold = True
                .Interior.ColorIndex = 15
                .Interior.Pattern = xlSolid
                .Borders(xlEdgeBottom).LineStyle = xlContinuous
                .Borders(xlEdgeBottom).Weight = xlThin
                .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
                .HorizontalAlignment = xlCenter
     
     
            End With
     
        Next J
     
        ' recopie des données à partir de la ligne 3
        I = 4
        Do While Not rec.EOF
            For J = 0 To rec.Fields.Count - 1
                ' .Fields(Index).Type renvoie le type du champ
                '   si c'est un Texte (dbText) nous insérons "'" pour
                '   qu'il soit reconnu par Excel comme du Texte
                xlSheet.Cells(I, 1).NumberFormat = "DD/MM/YYYY"
                xlSheet.Cells(I, 4).NumberFormat = "hh:mm:ss"
                xlSheet.Cells(I, 5).NumberFormat = "hh:mm:ss"
                xlSheet.Cells(I, 6).NumberFormat = "hh:mm:ss"
     
                If rec.Fields(J).Type = dbText Then
                    xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J)
                Else
                    xlSheet.Cells(I, J + 1) = rec.Fields(J)
                End If
     
               With xlSheet.Cells(I, J + 1)
               .HorizontalAlignment = xlCenter
               End With
     
     
            Next J
     
     
     
            I = I + 1
     
     
            rec.MoveNext
     
     
     
        Loop
     
     
     
        ' code de fermeture et libération des objets
        xlBook.SaveAs "\\Srvgpao\Bureautique\dossiers de partage SEAC\MAINTENANCE\Depannage\Pannes.xls"
        rec.Close
        Set rec = Nothing
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing

    Merci de votre aide.

  2. #2
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    La classe Range, dans Excel, propose une méthode très intéressante : CopyFromRecordset...
    Je te laisse imaginer à quoi elle peut servir

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 129
    Par défaut
    Je ne vois pas de quoi tu parles.

  4. #4
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Citation Envoyé par magictom42
    Je ne vois pas de quoi tu parles.
    Dommage !
    Mais peut-être qu'un F1 su CopyFromRecordset devrait t'aider un peu

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 129
    Par défaut
    Je n'arrive pas à trouver. Je ne suis pas très fort en VB.

Discussions similaires

  1. [XL-2003] extraction d'un fichier BO sur excel via vba
    Par baptoo61 dans le forum Excel
    Réponses: 4
    Dernier message: 23/05/2014, 19h12
  2. Extraction sur excel
    Par civitas dans le forum Débuter
    Réponses: 5
    Dernier message: 08/04/2013, 16h03
  3. [XL-2007] Extraction de données SAPGui sur Excel
    Par timesteva dans le forum Excel
    Réponses: 2
    Dernier message: 17/07/2012, 17h56
  4. [Toutes versions] Lenteur sur Extraction vers Excel 2003/2007
    Par curt dans le forum Access
    Réponses: 1
    Dernier message: 18/08/2010, 11h35
  5. extraction automatique d'une ligne sur excel
    Par LAFORCADE dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2007, 11h40

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