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

Macros et VBA Excel Discussion :

Imprimer ListBox d'un multipage [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut Imprimer ListBox d'un multipage
    Bonjour à tous,

    Je suis à la recherche d'une procédure pour imprimer les données d'une ListBox. En fait imprimer le résultat obtenu.
    Dans un formulaire multipages avec 6 pages, (UfCherche/MultiPage1). Dans la page VILLE (Index 1), j'ai une ListBox (LstVille) qui est alimentée à partir d'une donnée choisie dans un ComboBox (CmbVille).
    Une fois que les données sont dans la List, je souhaite les imprimer en cliquant sur un bouton (BtImp1).
    Merci par avance pour votre aide
    Meilleures salutations

  2. #2
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    Bon j'ai avancé un peu :

    J'ai mis en place ce code qui m'imprime bien les données de la ListBox mais pas comme je le souhaite.
    En effet, le résultat est imprimé en portrait et sur 3 feuilles.
    Je souhaite donc que l'impression se fasse au format "Paysage" et ajusté à une seule feuille.
    Pouvez-vous m'aider s'il vous plait ?
    Merci par avance

    Voici mon début de 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
     
    Private Sub BtImp1_Click()
    Dim Tableau() As Variant
    Dim I As Integer
    Dim J As Byte
     
    Application.ScreenUpdating = False
    Workbooks.Add 'Création d'un nouveau classeur temporaire
     
    Tableau() = LstVille.List
    J = LstVille.ColumnCount
    I = LstVille.ListCount
    Range("A1:" & Cells(I, J).Address) = Tableau()
     
    'Option pour adapter la largeur des colonnes à la taille des données
    ActiveSheet.Range("A1:" & Cells(I, J).Address).EntireColumn.AutoFit
     
    ActiveWorkbook.PrintOut 'Impression
    Application.DisplayAlerts = False 'Pas d'alerte de sauvegarde
    ActiveWorkbook.Close False 'Suppression du classeur temporaire
     
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    J'ai trouvé pour ajuster l'impression à la feuille. Mais là où je sèche c'est pour mettre des en-têtes aux colonnes.

    La première colonne : Sites
    La 2ème : Désignation
    La 3ème : N° Boîte
    La 4ème : N° Ligne

    Voici le 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
     
    Private Sub BtImp1_Click()
    Dim Tableau() As Variant
    Dim I As Integer
    Dim J As Byte
     
    Application.ScreenUpdating = False
    Workbooks.Add 'Création d'un nouveau classeur temporaire
     
    Tableau() = LstVille.List
    J = LstVille.ColumnCount
    I = LstVille.ListCount
    Range("A1:" & Cells(I, J).Address) = Tableau()
     
    'Option pour adapter la largeur des colonnes à la taille des données
    ActiveSheet.Range("A1:" & Cells(I, J).Address).EntireColumn.AutoFit
     
    With ActiveSheet.PageSetup
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesTall = 1
        .FitToPagesWide = 1
    End With
     
    ActiveWorkbook.PrintOut 'Impression
    Application.DisplayAlerts = False 'Pas d'alerte de sauvegarde
    ActiveWorkbook.Close False 'Suppression du classeur temporaire
     
    Application.ScreenUpdating = True
    End Sub

  4. #4
    Membre éclairé Avatar de Vba14
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 440
    Par défaut
    J'ai trouvé.
    Voici le code final. Si vous pensez qu'il peut être amélioré, n'hésitez pas.
    Merci par avance
    Meilleures salutations

    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 BtImp1_Click()
    Dim Tableau() As Variant
    Dim I As Integer
    Dim J As Byte
     
    Application.ScreenUpdating = False
    Workbooks.Add 'Création d'un nouveau classeur temporaire
     
    Tableau() = LstVille.List
    J = LstVille.ColumnCount
    I = LstVille.ListCount
    Range("A2:" & Cells(I, J).Address) = Tableau()
    Range("A1").Value = "Site"
    Range("B1").Value = "Désignation"
    Range("C1").Value = "N° Boîte"
    Range("D1").Value = "N° Ligne"
     
    'Option pour adapter la largeur des colonnes à la taille des données
    ActiveSheet.Range("A2:" & Cells(I, J).Address).EntireColumn.AutoFit
     
    With ActiveSheet.PageSetup
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesTall = 1
        .FitToPagesWide = 1
    End With
     
    ActiveWorkbook.PrintOut 'Impression
    Application.DisplayAlerts = False 'Pas d'alerte de sauvegarde
    ActiveWorkbook.Close False 'Suppression du classeur temporaire
     
    Application.ScreenUpdating = True
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/11/2007, 20h13
  2. Imprimer une listbox
    Par kahya dans le forum VB.NET
    Réponses: 1
    Dernier message: 25/05/2007, 14h32
  3. Imprimer le contenu d'une listbox
    Par djidanestribbal dans le forum IHM
    Réponses: 4
    Dernier message: 23/02/2007, 12h30
  4. [c#] Comment imprimer le contenu dune listbox dans un fichier
    Par Clarissa2006 dans le forum Windows Forms
    Réponses: 14
    Dernier message: 24/06/2006, 18h21
  5. Debutant. imprimer une ListBox
    Par fermat dans le forum Delphi
    Réponses: 7
    Dernier message: 31/05/2006, 14h52

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