XL 2016 impression du contenu d'un listbox

borain

XLDnaute Nouveau
Bonjour,
Après avoir trouver solution à un problème que j'ai eu récemment grâce à votre précieuse aide et je vous en remercie.
je reviens cette fois pour savoir si c'est possible d'imprimer le contenu d'une listbox.
si oui merci de m'aider avec un code.


Merci pour votre aide.
 

Claudy

XLDnaute Accro
Bonjour,
Dans ta listbox, il y a une propriété Rowsource...
AMHA (A Mon Humble Avis), il suffit d'imprimer la sélection dans ta feuille , ici A1:A7.
1585218918796.png

A+
Claudy
 

borain

XLDnaute Nouveau
voici ma formule mais j'aimerai faire un aperçu avant impression
Sub test1_Click()

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("DATE", "HEURE", "NOMS ET PRENOMS", "MTLE", "MVT", " OUTILS", "QTE", "MAGASIGNIER") 'à 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
 

GALOUGALOU

XLDnaute Accro
bonjour borain bonjour le forum
je viens de tester votre code sur un de mes classeurs
j'ai n'ai pas rencontré le problème que vous me décrivez.
par contre j'ai été gêné par l'userform, aussi j'ai rajouté dans le code, la fermeture et l'ouverture de l'userform.
j'ai pu, voir l'aperçu avant impression, choisir mon imprimante, imprimer et ensuite j'ai eu la fin de procédure.
ne pas oublier d'adapter le nom de votre userform.
en cas de souci déposer un classeur fictif avec les macros.

Enrichi (BBcode):
S.Rows(1).Insert
mesTitres = Array("DATE", "HEURE", "NOMS ET PRENOMS", "MTLE", "MVT", " OUTILS", "QTE", "MAGASIGNIER") 'à adapter
S.Range(S.Cells(1, 1), S.Cells(1, UBound(mesTitres) + 1)) = mesTitres
Unload Me
WB.PrintPreview 'impression
WB.Close False 'suppression du classeur temporaire
'///
UserForm1.Show MODAL
Application.ScreenUpdating = True
End Sub

cordialement
galougalou
 
Dernière édition:

GALOUGALOU

XLDnaute Accro
re le fil
une fois votre impression maitrisé, pour rendre votre classeur temporaire plus sympa , vous pouvez rajouter ce code dans un module, et rajouter dans la procédure d'impression "call bordure" juste avant unload me

Code:
Sub bordure()

    Range("A1:H500").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Borders(xlLeft)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlRight)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlTop)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.FormatConditions(1).Borders(xlBottom)
        .LineStyle = xlContinuous
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
cordialement
galougalou
 

Discussions similaires