Bonjour Gilles, le Forum
Euh oui, oui, ok une ListBox en MultiColonnes dont tu choisis ou non de montrer certaines colonnes par des OptionButtons, ok je pige.
Mais on en revient exactement à ce que j'évoquais Vendredi, que veux-tu imprimer ?
111) L'image du UserForm avec la ListBox ?
222) Le contenu des données de la ListBox ?
Si 111) alors voir instruction "UserForm1.PrintForm"
Si 222) alors il faut reporter les donnée vers une Feuille qui sera imprimée.
Il n'y a pas d'autre solution à ma connaissance.
Si tu ne veux pas imprimer certaines colonnes de la ListBox, il suffit de le préciser dans le code d'export de données vers la feuille, voici un exemple :
Matériel nécessaire
1 Classeur Vierge avec :
1 UserForm avec :
¤1 ListBox nommée ListBox1
¤1 OptionButton nommé OptionButton1
¤1 OptionButton nommé OptionButton2 '(juste pour avoir le choix d'option)
¤1 CommandButton nommé CommandButton1
Tu places ce code dans le Private Module de ce UserForm :
Option Explicit
Private Sub UserForm_Initialize()
With Me.ListBox1
.ColumnCount = 3
.ColumnWidths = "40;80;60"
.AddItem "Toto"
.Column(1, 0) = "5 rue des TotoMan"
.Column(2, 0) = "TotoCity"
.AddItem "Zaza"
.Column(1, 1) = "6 rue des ZazaGirl"
.Column(2, 1) = "ZazaTown"
.AddItem "Lulu"
.Column(1, 2) = "7 rue des LuluBoy"
.Column(2, 2) = "LuluCity"
End With
End Sub
Private Sub CommandButton1_Click()
Dim i As Byte
Range("A1:C3").Clear
Select Case Me.OptionButton1
Case True
For i = 0 To Me.ListBox1.ListCount - 1
Range("A" & i + 1) = Me.ListBox1.Column(0, i)
Range("B" & i + 1) = Me.ListBox1.Column(1, i)
Range("C" & i + 1) = Me.ListBox1.Column(2, i)
Next i
Case False
For i = 0 To Me.ListBox1.ListCount - 1
Range("A" & i + 1) = Me.ListBox1.Column(0, i)
Range("B" & i + 1) = Me.ListBox1.Column(2, i)
Next i
End Select
End Sub
Voilà est-ce ce que tu cherches à faire ?
Bon Appétit
@+Thierry