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 le contenu d'une LISTBOX (en mode paysage)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut Imprimer le contenu d'une LISTBOX (en mode paysage)
    Bonjour le forum,

    Je voudrais imprimer le contenu de ma listbox. j'ai trouvé le code ci-dessous mais le problème c'est que l’impression n'est pas en mode paysage. En plus je voulais ajouter des titres dans la feuille provisoire avant d’imprimer (Première ligne A1:O1).

    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
    Sub Impre()
    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() = ListBox1.List
    j = ListBox1.ColumnCount
    i = ListBox1.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
    ActiveWorkbook.Close False 'suppression du classeur temporaire
    Application.ScreenUpdating = True
     
    End Sub
    Merci pour votre réponse.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Peut être comme cela
    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
    Sub Impre()
    Dim WB As Workbook  '///ajout/modif
    Dim S As Worksheet  '///ajout/modif
    Dim mesTitres As Variant  '///ajout/modif
    Dim Tableau() As Variant
    Dim i As Integer
    Dim j As Byte
     
    Application.ScreenUpdating = False
     
    '///ajout/modif
    Set WB = Workbooks.Add 'création d'un nouveau classeur temporaire
    Set S = WB.Sheets(1)
    S.PageSetup.Orientation = xlLandscape   'PAYSAGE
    '///
     
    Tableau() = ListBox1.List
    j = ListBox1.ColumnCount
    i = ListBox1.ListCount
    S.Range("A1:" & S.Cells(i, j).Address) = Tableau()  '///ajout/modif
     
    'option pour adapter la largeur des colonnes à la taille des données
    'ActiveSheet.Range("A1:" & Cells(i, j).Address).EntireColumn.AutoFit
     
    '///ajout/modif
    S.Rows(1).Insert
    mesTitres = Array("Titre1", "Titre2", "Titre3", "Titre4", "Titre5", "Titre6", "Titre7")   'à adapter
    S.Range(S.Cells(1, 1), S.Cells(1, UBound(mesTitres) + 1)) = mesTitres
    WB.PrintOut 'impression
    WB.Close False 'suppression du classeur temporaire
    '///
     
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    Juste une petite question:

    peut-on rajouter une commande qui empêche la macro de s'activer lorsque la listbox est vide ? j'ai essayé au début de la macro avec la listbox.value <> "" mais ca ne marche pas.

    Merci d'avance.

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    regarder l'aide vba sur

    a partir de la le code te viendra tout seul avec un if then

  5. #5
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut
    Bonjour,

    Ca marche très bien avec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ListBox1.ListCount > 0
    Merci et bonne journée.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour
    et l'enregistreur de macro il sert a quoi?? hein?????
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Imprim_plage_en_landscape()
        With ActiveSheet.PageSetup
          .PrintArea = "$A$1:$A$14"
            .CenterHorizontally = True
            .CenterVertically = True
             .Orientation = xlLandscape
                    .PaperSize = xlPaperA4
             .Zoom = 100
       End With
    End Sub
    re
    tiens celle la te fait le tout d'un coup
    remplace "printPreview" par "printOut" pour imprimer directement
    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
    Sub Impre()
            Set wbk = ThisWorkbook
        Set maliste = wbk.ActiveSheet.ListBox1.Object
        Application.ScreenUpdating = False
        Workbooks.Add    'création d'un nouveau classeur temporaire
        With ActiveSheet
            .Cells(1, 1).Resize(maliste.ListCount - 1, maliste.columncount - 1) = maliste.List
            .Columns("A:A").AutoFit
            With .PageSetup
                .PrintArea = ActiveSheet.Cells(1, 1).Resize(maliste.ListCount - 1, maliste.columncount - 1).Address
                .CenterHorizontally = True
                .CenterVertically = True
                .Orientation = xlLandscape
                .PaperSize = xlPaperA4
                           .FitToPagesWide = 1
                .FitToPagesTall = 1
     
            End With
        End With
        ActiveWorkbook.PrintPreview    'impression
        ActiveWorkbook.Close False    'suppression du classeur temporaire
        Application.ScreenUpdating = True
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par patricktoulon Voir le message
    bonjour
    et l'enregistreur de macro il sert a quoi?? hein?????
    Ce n'est malheureusement pas la première fois. Il s'en sort chaque fois, parce que ce ne sont pas les mêmes qui répondent.

    Et puis il y a quelque chose de très révélateur dans sa question :

    j'ai trouvé le code ci-dessous

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

Discussions similaires

  1. Imprimer le contenu d'une listbox
    Par xalam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/04/2010, 02h17
  2. Imprimer le contenu d'une listbox
    Par beni34 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 04/08/2009, 11h19
  3. Imprimer contenu d'une listBox
    Par beni34 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 04/08/2009, 09h33
  4. Imprimer le contenu d'une listbox
    Par djidanestribbal dans le forum IHM
    Réponses: 4
    Dernier message: 23/02/2007, 12h30
  5. [Kylix] Imprimer le contenu d'une boîte de dialogue
    Par cmp-france dans le forum EDI
    Réponses: 13
    Dernier message: 18/10/2003, 20h31

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