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

IHM Discussion :

EXPORT VERS EXCEL [AC-2019]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut EXPORT VERS EXCEL
    Bonsoir,

    J'aimerai exporter des données filtrées d'un formulaire vers Excel via un bouton.
    J'ai créé un formulaire qui filtre des données via une requête et qui s'affiche sur mon formulaire.
    Nom : Capture d’écran 1.jpg
Affichages : 338
Taille : 116,0 Ko
    J'ai créé une macro "exporter avec mise en forme" via un bouton.
    Nom : Capture d’écran 2.jpg
Affichages : 246
Taille : 15,3 Ko
    Mon problème est que le fichier Excel enregistre toute la base et non mes champs renseignés.
    Merci...

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Votre questionnement n'est pas clair du tout.
    Par "champs renseignés" entendez-vous les objets indépendants filtres date/destinataire/expéditeur?
    Si c'est le cas, ces objets sont-ils bien présents dans la zone critères de votre qry?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    Dans mon formulaire quand j'applique un filtre par exemple une date les données s'affichent correctement. Mais quand j'exporte les données via mon bouton sur excel c'est la base entière qui est exportée.

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Votre form a-t-il bien comme source de données la qry r_filtre?
    Comment avez-vous construit cette qry r_filtre?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    Oui mon form à comme source la requête.
    J'ai construit ma requête à partir de ma base réception et j'ai mis les champs qui me convenais
    Nom : Capture d’écran 2021-12-11 075925.jpg
Affichages : 218
Taille : 86,2 Ko
    Pa requête fonctionne car les données affichées sont corrects. C'est au moment de l'extraction vers EXCEL que çà me donne ma base complète.
    Peut-être que je devrait faire l'extraction Excel à partir d'un état et non d'un formulaire ?

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    A la lecture de votre capture d'écran Post#5, je ne vois pas de critères pour date de réception !
    Parce que à minima vous devriez avoir Entre [Formulaires]![frm]![txtdatedeb] Et [Formulaires]![frm]![txtdatefin].
    Alors comment exécutez-vous l'action de filtrer le form?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    J'exécute le formulaire par un filtre au clique d'un bouton
    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
    Private Sub Commande75_Click()
    f = ""
    If Not IsNull(Me.Texte13) And Me.Texte13 <> "" Then
    f = "Destinataire LIKE ""*" & Me.Texte13 & "*"""
    End If
    If Not IsNull(Me.Texte68) And Me.Texte68 <> "" Then
    If f <> "" Then
    f = f & " AND Expéditeur LIKE ""*" & Me.Texte68 & "*"""
    Else
    f = "Expéditeur LIKE ""*" & Me.Texte68 & "*"""
    End If
    End If
    If Not IsNull(Me.date_debut) And Me.date_debut <> "" And Not IsNull(Me.date_fin) And Me.date_fin <> "" Then
    If f <> "" Then
    f = f & " AND [Date de réception] BETWEEN #" & Format(Me.date_debut, "mm-dd-yyyy") & "# AND #" & Format(Me.date_fin, "mm-dd-yyyy") & "#"
    Else
    f = "[Date de réception] BETWEEN #" & Format(Me.date_debut, "mm-dd-yyyy") & "# AND #" & Format(Me.date_fin, "mm-dd-yyyy") & "#"
    End If
    End If
    Me.Filter = f
    Me.FilterOn = True
    End Sub

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonjour,
    puisque tu utilises le VBA pour appliquer ton filtre, pourquoi ne pas l'utiliser aussi pour l'export Excel ?
    Tu as la possibilité d'exporter le Recordset du formulaire avec la commande CopyfromRecordset dont voici un exemple:
    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
    Dim ors As Recordset
    Dim oApp As Object
    Dim oWkb As Object
    Dim oWSht As Object
    Dim i As Long
     
    ' création instance excel
    Set oApp = CreateObject("Excel.application")
    ' Création du nouveau classeur
    Set oWkb = oApp.Workbooks.Add
     
    Set oWSht = oWkb.Worksheets(1) ' ici le nom de la feuille ou juste son index
     
    ' récupération des données issues du formulaire
    Set ors = Me.Recordset.OpenRecordset
     
    If Not ors.EOF Then
        ' copie des entêtes de colonnes
        For i = 0 To ors.Fields.Count - 1
            oWSht.Range("A1").Offset(0, i) = ors(i).Name
        Next
        ' copie des données
        oWSht.Range("A2").CopyFromRecordset ors
        ' sauvegarde du classeur
        oWkb.SaveAs "D:\NomDuFichier.xlsx"
        oWkb.Close True
    End If
     
    oApp.Quit
    Set ors = Nothing
    Set oApp = Nothing
    éventuellement, fais une recherche sur le forum avec le mot-clé copyfromrecordset si tu veux d'autres exemples

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    tee_grandbois
    merci pour le code. Cà marche pour l'extraction.
    Comment fait-on pour laisser le choix à l'utilisateur de l'emplacement du fichier Excel ?

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    oui, il faut remplacer cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        oWkb.SaveAs "D:\NomDuFichier.xlsx"
    par celles-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Sauvegarde du fichier Excel avec ouverture boite de dialogue "Enregistrer sous"
       oApp.Visible = True
       oApp.Dialogs(xlDialogSaveAs).Show "NomDuFichier.xlsx"

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    Merci tee_grandbois et hyperion13

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 398
    Points : 128
    Points
    128
    Par défaut
    Désolé mais je réouvre la discussion car le code ne fonctionne pas.
    Quand je clique sur mon bouton Excel s'ouvre bien avec les bonnes données filtrées mais quand je sauvegarde j'ai ce message d'erreur
    Nom : Capture d’écran 2021-12-13 184237.jpg
Affichages : 188
Taille : 11,0 Ko
    sur la ligne en gras
    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
    Private Sub Commande76_Click()
    Dim ors As Recordset
    Dim oApp As Object
    Dim oWkb As Object
    Dim oWSht As Object
    Dim i As Long
     
    ' création instance excel
    Set oApp = CreateObject("Excel.application")
    ' Création du nouveau classeur
    Set oWkb = oApp.Workbooks.Add
     
    Set oWSht = oWkb.Worksheets(1) ' ici le nom de la feuille ou juste son index
     
    ' récupération des données issues du formulaire
    Set ors = Me.Recordset.OpenRecordset
     
    If Not ors.EOF Then
        ' copie des entêtes de colonnes
        For i = 0 To ors.Fields.Count - 1
            oWSht.Range("A1").Offset(0, i) = ors(i).Name
        Next
        ' copie des données
        oWSht.Range("A2").CopyFromRecordset ors
        ' Sauvegarde du fichier Excel avec ouverture boite de dialogue "Enregistrer sous"
        oApp.Visible = True
        oApp.Dialogs(xlDialogSaveAs).Show "NomDuFichier.xlsx"
        oWkb.Close True
    End If
     
    oApp.Quit
    Set ors = Nothing
    Set oApp = Nothing
    End Sub

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 391
    Points : 19 817
    Points
    19 817
    Billets dans le blog
    66
    Par défaut
    Bonsoir,

    Avez-vous cocher la référence pour microsoft Excel ?

    Sinon, peut-être essayer avec la valeur 5 au lieu de xlDialogSaveAs.

    Cdlt,

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonsoir User,
    la référence Excel n'est pas utile puisque le code utilisé est en liaison tardive, mais utiliser la valeur numérique de la constante xlDialogSaveAs est effectivement une solution.

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 391
    Points : 19 817
    Points
    19 817
    Billets dans le blog
    66
    Par défaut
    Salut Tee
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir User,
    la référence Excel n'est pas utile puisque le code utilisé est en liaison tardive, mais utiliser la valeur numérique de la constante xlDialogSaveAs est effectivement une solution.
    C'est juste, et on peut aussi préciser que s'il avait mis Option Explicit en haut de son module, il aurait tout de suite vu à la compilation que xlDialogSaveAs n'était pas déclarée dans son environnement, avec un message du genre variable non définie (contrairement à dbOpenDynaset par exemple).

    Cdlt,

  16. #16
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut tout le monde
    Je viens de faire une adaptation rapide avec NorthWind et la sub() du Post#12 et fonctionne très bien.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonjour hyperion13,
    merci pour la confirmation. J'ai également testé le code avant de le poster (comme à mon habitude, je le signale sur le post quand je ne le peux pas).

    J'avais pensé à la possibilité que ce soit le nom du fichier (ou plutôt son extension xlsx) qui pose problème mais je ne vois pas comment et pourquoi étant donné la version office très récente de chartreuse)

  18. #18
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 391
    Points : 19 817
    Points
    19 817
    Billets dans le blog
    66
    Par défaut
    Resalut,

    Citation Envoyé par tee_grandbois Voir le message
    bonjour hyperion13,
    merci pour la confirmation. J'ai également testé le code avant de le poster (comme à mon habitude, je le signale sur le post quand je ne le peux pas).

    J'avais pensé à la possibilité que ce soit le nom du fichier (ou plutôt son extension xlsx) qui pose problème mais je ne vois pas comment et pourquoi étant donné la version office très récente de chartreuse)
    Tu as quoi comme version et quelles références de cochées ?, parce que moi j'avais le même souci que chartreuse sans la référence Excel

    Cela dit ton code fonctionne ce n'est pas la question

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    j'ai Access 2013 sur mon PC, j'ai plusieurs références cochées (Access, Office, Word, Outlook etc..) mais pas Excel mais il faut remplacer xlDialogSaveAs par 5 comme tu l'as indiqué pour que cela fonctionne.

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    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 801
    Points : 14 869
    Points
    14 869
    Par défaut
    je viens de faire le test avec une nouvelle base avec les références Access 2013 par défaut cochées:

    Nom : _0.JPG
Affichages : 159
Taille : 288,8 Ko

    cela fonctionne toujours ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [crystal report] export vers excel 2000 data only
    Par bobwilson dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/02/2005, 18h30
  2. Exporter vers Excel, et créer automatiquement un graphe
    Par NiKKiLLeR dans le forum Windows
    Réponses: 2
    Dernier message: 10/02/2005, 19h02
  3. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  4. [CR] Exportation vers Excel
    Par djamel64 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 01/12/2003, 14h52
  5. exportation vers excel
    Par Pm dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/01/2003, 14h48

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