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

VB.NET Discussion :

Checkedlistbox et extraction en pdf


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Checkedlistbox et extraction en pdf
    Bonjour à tous,

    Je suis tout nouveau sur le forum et encore plus en vb.net et j'ai décidé de m'inscrire pour demander votre aide sur un programme que je suis en train d'écrire.
    Habituellement, je trouve les informations qu'il me faut sur internet mais je suis complètement bloqué et n'arrive pas à avancer ...
    Pour expliquer brièvement, j'ai créé une checkedlistbox qui se rempli automatiquement en ouvrant un fichier excel et en récupérant le nom des différents onglets.
    J'aimerai maintenant qu'une fois l'utilisateur a sélectionné les différents onglets, les feuilles excel sélectionnées se "mette à la suite" en format pdf. Je pense que je ne suis pas très clair.

    Exemple:
    Un fichier excel avec onglets : "recette entrée", "recette plat", "recette dessert"
    Création d'une checkedlistbox dans une form sur visual studio récupérant les noms des onglets.

    Si l'utilisateur sélectionne "recette plat" et "recette dessert", il faudrait que la feuille "recette plat" et "recette dessert" se suivent et s'enregistre en pdf dans le même fichier.

    Pour l'instant tout ce que j'arrive a faire, c'est remplir la checklistbox mais la suite je n'y arrive pas du tout ...

    Quelqu'un aurait-il des informations, programmes ou quelque chose de ressemblant qui pourrait me faire avancer ?

    Je vous remercie par avance du temps que vous voudrez bien me consacrer.

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Si je devais faire cet enregistrement en pdf, je programmerais l'impression de la feuille XLS vers l'imprimante "Adobe Pdf".
    Il faut pour cela utiliser un PrintDialog pour rendre cette imprimante active et ensuite, soit lancer la commande d'impression d'XLS (ce qui implique l'usage d'un objet ExcelApplication), soit programmer soi-même (PrintDocument.PrintPage) pour réaliser une mise en page spécifique.

    Peut-être recevras-tu des pistes de solutions plus simples ...


  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci beaucoup pour la réponse. Je vais essayer de me pencher sur cette méthode. Je ne connais pas du tout ces commandes.

  4. #4
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Je t'envoie ci-joint un extrait de cours à propos de l'impression en VB.Net : Imprimer.pdf
    C'est pas un "cadeau" ..., mais il y a quelques idées ...


  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup, ça ne peut que m'aider

    Petite question supplémentaire, dans ma listbox j'ai le nom de toute mes feuilles de mon fichier excel. J'en sélectionne 2 par exemple, comment est-ce que je pourrais activé ces feuilles, l'une après l'autre dans mon fichier excel (pour ensuite lancer les impressions) ?
    J'essaie avec des boucles for et la condition if mais apparemment, je n'arrive pas a récupérer le nom de ma feuille pour tester si il appartient aux items sélectionnés ...

  6. #6
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Voici un extrait de code pour accéder aux objets XLS avec une Excel.Application après l'appui d'un bouton BExcel :

    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
     
    Imports Excel = Microsoft.Office.Interop.Excel
    Imports Microsoft.Vbe.Interop
     
    Public Class FBase
     
        Dim WithEvents XLSAPP As Excel.Application = Nothing   ' Pour avoir les événements d'Excel, par exemple : WorkbookBeforeSave
        ' Dim XLSAPP As Excel.Application = Nothing            ' Si on n'a pas besoin des événements d'Excel
     
    'La feuille Excel n'est pas ouverte avant le click du bouton, sinon  code différent !!!
        Private Sub BExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BExcel.Click
            XLSAPP = New Excel.Application
            XLSAPP.Visible = True
            XLSAPP.Workbooks.Open("D:\Tmp\ProbExcel\SysCoucou.dat") 'Test.xls")  'ouvir le fichier XLS ==> chemin et nom complet
     
            XLSAPP.Sheets("Feuil1").Select()   ' Le nom de la feuille est une chaine ;;; :D)))
            XLSAPP.Columns("B:B").Select()  ' ou "B:B" pour la colonne B, ...
     
    ' Si la feuille contient des macros, on peut en exécuter en donnant le nom de la macro :
           XLSAPP.Run("NomDeLaMacro")
     
     
    ' On peut en exécuter les commande de XLS, par exemple pour quitter  :
           XLSAPP.Quit
    Avec ta ListBox, tu peux sûrement programmer une boucle du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            For Each Feuille As String In ListBox1.SelectedItems  '   ... ListBox1.SelectedItemS (pluriel)
    ' ... ... ...
                    XLSAPP.Sheets(Feuille).Select() 
     
    ' ... ... ...
            Next
    Bon travail

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Me connecter a Excel c'est bon j'ai réussi, j'en ai eu besoin pour récupérer le nom des différents onglets à mettre dans ma listbox (c'est bien les seules choses qui fonctionnent d'ailleurs )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim k As Integer
    Dim i As Integer
    k = wbXl.Worksheets.Count
     
            For Each Item As Object In ListBox1.SelectedItems
                For i = 1 To k
                    wbXl.Worksheets....
                Next
    c'est dans la boucle for, j'aimerai dire "pour chaque item sélectionné dans la listbox1, j'active les 3 feuilles (si 3 items sélectionnés), et je les imprimes en pdf à la suite."
    Je n'arrive pas a tester le nom de la feuille avec l'item sélectionné ...

    Oh c'est bon, merci beaucoup pour les indices, je vais essayer de continuer

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Je reviens (encore une fois) concernant l'impression des feuilles.
    J'ai écris dans 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
     
    Dim appXL As Excel.Application
     
            Dim wbXl As Excel.Workbook
            Dim chem As String = "X:\COMMUN\QUALITE\TCH\PFE\DFC template\1445-100_PF00100028AB_B_Y.xlsx"
            appXL = CreateObject("Excel.Application")
            wbXl = appXL.Workbooks.Open(chem)
            Dim objProcess As New System.Diagnostics.ProcessStartInfo
     
            For Each Feuille As String In ListBox1.SelectedItems
                wbXl.Sheets(Feuille).select()
                wbXl.PrintOut(Feuille)
     
            Next
     
            appXL.Quit()
    J'ai l'erreur : "System.Runtime.InteropServices.COMException*: 'Exception de HRESULT : 0x800A03EC", une petite idée pour m'aider à me débloquer ?

  9. #9
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Pourquoi la ligne Dim objProcess As New System.Diagnostics.ProcessStartInfo ?

    Essaie plutôt 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
     
     
    Dim  appXL As New Excel.Application
     
            appXL.Workbooks.Open("X:\COMMUN\QUALITE\TCH\PFE\DFC template\1445-100_PF00100028AB_B_Y.xlsx")
     
            For Each Feuille As String In ListBox1.SelectedItems
     
                appXL.Sheets(Feuille).select()
     
        ''' cf. la video        appXl.Selection.PrintOut()  ' sans avoir créé la macro, mais ça doiit fonctionner
     
                appXL.ActiveSheet.PrintOut()  ' Après examen de la macro enregistrée
     
            Next
          appXL.Quit
    Note que les codes "attachés" à appXL peuvent être obtenus par l'enregistrement d'une macro dans XLS.
    L'examen du code de la macro donne les pistes nécessaires à la programmation sous VB.
    Vois la video qui montre comment je détermine la ligne appXL.ActiveSheet.PrintOut().
    La video : https://www.dropbox.com/s/2y70cfbpxp...Macro.mp4?dl=0

    J'espère que ça t'aidera ...

Discussions similaires

  1. [Toutes versions] Automatiser extraction données pdf/word vers Excel
    Par adevy dans le forum Excel
    Réponses: 6
    Dernier message: 07/07/2014, 09h15
  2. Extraction de PDF
    Par mick8569 dans le forum Documents
    Réponses: 1
    Dernier message: 27/01/2009, 13h31
  3. [PDF] Extraction données PDF dans un projet PHP
    Par Kaldyris dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/07/2008, 10h42
  4. Extraction fichier .pdf d'un CLOB
    Par merssemic dans le forum SQL
    Réponses: 7
    Dernier message: 13/11/2007, 17h21
  5. Problème de colonne lors de l'extraction en PDF
    Par fantagaro dans le forum Cognos
    Réponses: 6
    Dernier message: 25/10/2007, 09h47

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