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

Développement Windows Discussion :

Plusieurs Sheet dans un seul fichier a partir d'un bouton


Sujet :

Développement Windows

  1. #1
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut Plusieurs Sheet dans un seul fichier a partir d'un bouton
    zefzszaazdazd

  2. #2
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Bonjour, y'a t'il quelqu'un ici ??

  3. #3
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    personne ne répond sur ce forum !!!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Si si on répond, mais faut pas non plus exagérer, on a pas que ça a faire .... et on y peut rien si tu ne sais pas faire ce qu'on te demande, c'est pas sur nous qu'il faut gueuler !!!

    De plus ma réponse ne va pas te plaire puisque je vais te demander pourquoi tu fais encore de l'interop sachant que c'est obsolète depuis excel 2007 ?? Et non pas par exemple de l'EEplus ? et finalement te renvoyer vers ce topic d'hier, qui a un petit exemple de code, à améliorer bien sur , montrant comment on remplace tout ton code (enfin presque tout) avec 3 lignes, pour un meilleur résultat.

    Bonne migration vers EEPlus
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  5. #5
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    ce n'est pas dont j'ai besoin , et j'utilise l'interop parceque c'est la seule option que je connais , sinon , depuis hier plus de 40 qui ont vu la discussion et personne ne répond , c'est pour ca que je râle , et je ne t'ai pas demander ni a toi ni a quelqu'un d'autre de faire mon travail

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut

    Tu codes avec une techno de plus de 10ans (un siècle IRL), alors faut pas s'étonner que personne ne répond ! c'est juste que la moitié de l'auditoire était en couche culotte quand certain faisaient de l'interop. De plus 40 vues c'est rien !

    Donc pour au moins la 5éme fois (oui je ne suis remonté qu'a juin 2017) je te conseil de passer par EEPlus, pour un mec comme toi qui fait de l'interop, passer à EEPlus c'est juste une blague... tu as une référence à ajouter, tout comme tu as rajouté la référence vers Microsoft.Office.Interop.Excel, puis tu écrits 4 lignes de code, une pour récupérer une liste d'object (ou une dataTable ce qui sera visiblement ton cas), une pour créer l'instance ExcelPackage en lui donnant le chemin du fichier, une pour ajouter un onglet (ah tiens juste une ligne ...) et une pour remplir l'onglet à partir de la dataTable ...
    M'enfin je dois devenir vieux et c*n ! t'es le 2ème cette semaine a qui je propose de remplacer 50 lignes de code spaghetti en 5 lignes de code facilement maintenables et évolutives, mais je me fais envoyer bouler, par un joyeux : je fais que ce que je connais . J'ai envie de dire que tu vas pas faire ça longtemps...

    Passer à EEPlus prend pas une heure, en comptant le petit prog de test que tu te feras pour vérifier que je dis pas trop de c*nn*ries.

    J@ck.

    [EDIT] Et merci pour le pouce rouge ! ca va encourager les autres helpers à t'aider...
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  7. #7
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    tu vas trouver ça bizarre , mais l'interop c'est la première chose que j'ai connu pour faire ce travail , je ne connais pas ce EPPLUS , et je ne sais pas comment ça marche .


    PS: j'ai 25 as je suis peut être moins jeune que toi .

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Citation Envoyé par andyajram Voir le message
    tu vas trouver ça bizarre , mais l'interop c'est la première chose que j'ai connu pour faire ce travail
    Ouai et donc c'est le seul que tu ne feras jamais ?

    Citation Envoyé par andyajram Voir le message
    , je ne connais pas ce EPPLUS , et je ne sais pas comment ça marche .
    Et avant de "faire ce travail" tu connaissais interop ?

    Citation Envoyé par andyajram Voir le message
    PS: j'ai 25 as je suis peut être moins jeune que toi .
    Perdu !

    Bon on y arrivera pas avec EPPlus, j'ai bien compris ! mais j'espère quand même que tu comprendra mes interrogations de voir un jeune développeur (ingénieur de surcoit) qui reste buté à ne pas vouloir tester, en moins d'une heure, une solution qui lui aurait fait gagner bien du temps. Je pari ma tournée de café que si tu passe, allé soyons sympa, 2 heures à tester EPPlus, tu regrettera de ne pas l'avoir fait depuis le mois juin... Et surtout, tu ne reviendra jamais a l'interop.

    Sinon j'ai trouvé ça

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  9. #9
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par andyajram Voir le message
    personne ne répond sur ce forum !!!
    Pour ma part, je ne comprend pas la demande "zefzszaazdazd". Et il est difficile de répondre quand on ne comprend ni le but, ni le problème, ni ce que tu as déjà essayé, bref rien quoi.

  10. #10
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Pour ma part, je ne comprend pas la demande "zefzszaazdazd". Et il est difficile de répondre quand on ne comprend ni le but, ni le problème, ni ce que tu as déjà essayé, bref rien quoi.
    je ne sais pas pourquoi le contenu de mon message a été effacé , bref j'ai trois boutons comme tu vois sur la capture d'écran , chaque bouton me génère des statistiques que j'exporte ensuite avec le bouton Excel en fichier Excel , mais maintenant je voudrais regrouper tous les boutons dans un seul bouton puis générer un seul fichier qui contient 3 sheets une pour chaque contenu des anciens boutons

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Si tu as déja le code qui génère une worksheet pour chacun des boutons, il suffit de les ajouter à un même workbook au lieux d'en recréer un.

    Poste le code que tu as.

  12. #12
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Si tu as déja le code qui génère une worksheet pour chacun des boutons, il suffit de les ajouter à un même workbook au lieux d'en recréer un.

    Poste le code que tu as.
    voici le code que j'utilise pour générer le fichier excel , en fait ce n'est pas pour chaque bouton , mais le bouton excel exporte ce qui s'affiche sur le DatagridView a partir de chaque bouton , comme sur la capture d'écran dans la description :
    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
     
     Dim App_xls As Object
            Dim Lig_cpt, Col_cpt As Integer
            App_xls = CreateObject("Excel.Application")
            App_xls.workbooks.add()
            App_xls.visible = True
     
            Try
                For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                    App_xls.ActiveSheet.cells(1, Col_cpt + 1).value = DataGridView1.Columns(Col_cpt).HeaderText
                Next
                For Lig_cpt = 0 To DataGridView1.Rows.Count - 1
                    For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                        If IsNumeric(DataGridView1.Item(Col_cpt, Lig_cpt).Value) Then
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = CDbl(DataGridView1.Item(Col_cpt, Lig_cpt).Value)
                        Else
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = DataGridView1.Item(Col_cpt, Lig_cpt).Value
                        End If
     
                    Next
                Next
            Catch ex As Exception
     
            End Try
            App_xls.Rows.Item(1).Font.Bold = True
            App_xls.Rows.Item(1).HorizontalAlignment = 3
            App_xls.Columns.AutoFit()
            MessageBox.Show("Fichier généré!")

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  14. #14
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    je n'ai pas compris comment ajouter ce bout de code dans mon code vu que j'affiche chaque bouton dans la même DatagridView , je dois peut-être créé deux autre gridview pour affiché chaque bouton séparément ?

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Isole cette partie code dans une fonction que tu appelles FillActiveWorksheet avec comme paramètre un objet App_xls
    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
     
             Try
                For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                    App_xls.ActiveSheet.cells(1, Col_cpt + 1).value = DataGridView1.Columns(Col_cpt).HeaderText
                Next
                For Lig_cpt = 0 To DataGridView1.Rows.Count - 1
                    For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                        If IsNumeric(DataGridView1.Item(Col_cpt, Lig_cpt).Value) Then
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = CDbl(DataGridView1.Item(Col_cpt, Lig_cpt).Value)
                        Else
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = DataGridView1.Item(Col_cpt, Lig_cpt).Value
                        End If
     
                    Next
                Next
            Catch ex As Exception
     
            End Try      
            App_xls.Rows.Item(1).Font.Bold = True
            App_xls.Rows.Item(1).HorizontalAlignment = 3
            App_xls.Columns.AutoFit()
    Ensuite dans ta fonction d'export tout en un tu appelleras 3 fois cette fonction en chargeant auparavant les données de ta datagridview et en ajoutant une worksheet.

    En gros ca donne un truc du style (je connais pas bien la syntaxe vb)
    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
     
    SuperFonctionExport
     
            Dim App_xls As Object
            Dim Lig_cpt, Col_cpt As Integer
            App_xls = CreateObject("Excel.Application")
            App_xls.workbooks.add()
            App_xls.visible = True
     
            ChargeDatagridViewBouton1
            FillActiveWorksheet ( App_xls)
     
           App_xls.ActiveWorkbook.Sheets.Add()
     
            ChargeDatagridViewBouton2
            FillActiveWorksheet ( App_xls)
     
            ChargeDatagridViewBouton3
            FillActiveWorksheet ( App_xls)
     
    MessageBox.Show("Fichier généré!")

  16. #16
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    mais tout ca reste dans un seul bouton c'est ca ?

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Dans le bouton que tu souhaites.

  18. #18
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    la fonction que tu appelle FillActiveWorksheet elle doit contenir quoi ?

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Citation Envoyé par andyajram Voir le message
    la fonction que tu appelle FillActiveWorksheet elle doit contenir quoi ?
    Citation Envoyé par micka132 Voir le message
    Isole cette partie code dans une fonction que tu appelles FillActiveWorksheet avec comme paramètre un objet App_xls
    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
     
             Try
                For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                    App_xls.ActiveSheet.cells(1, Col_cpt + 1).value = DataGridView1.Columns(Col_cpt).HeaderText
                Next
                For Lig_cpt = 0 To DataGridView1.Rows.Count - 1
                    For Col_cpt = 0 To DataGridView1.ColumnCount - 1
                        If IsNumeric(DataGridView1.Item(Col_cpt, Lig_cpt).Value) Then
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = CDbl(DataGridView1.Item(Col_cpt, Lig_cpt).Value)
                        Else
                            App_xls.ActiveSheet.cells(Lig_cpt + 2, Col_cpt + 1).value = DataGridView1.Item(Col_cpt, Lig_cpt).Value
                        End If
     
                    Next
                Next
            Catch ex As Exception
     
            End Try      
            App_xls.Rows.Item(1).Font.Bold = True
            App_xls.Rows.Item(1).HorizontalAlignment = 3
            App_xls.Columns.AutoFit()


  20. #20
    Membre du Club
    Homme Profil pro
    ertertaertar
    Inscrit en
    Mai 2013
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : ertertaertar

    Informations forums :
    Inscription : Mai 2013
    Messages : 314
    Points : 55
    Points
    55
    Par défaut
    c'est quoi ChargeDatagridViewBouton1 ??

Discussions similaires

  1. Plusieurs fonction dans un seul fichier
    Par kikoo21 dans le forum MATLAB
    Réponses: 4
    Dernier message: 04/10/2010, 10h34
  2. Sauvegarder plusieurs images dans un seul fichier
    Par thetom dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 17/08/2009, 12h35
  3. Réponses: 12
    Dernier message: 03/06/2008, 17h54
  4. Réponses: 2
    Dernier message: 22/09/2007, 15h37
  5. Réponses: 5
    Dernier message: 18/04/2007, 18h57

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