OVH Cloud OVH Cloud

Impression d'un thème uniquement

2 réponses
Avatar
Didier Novarin
Bonsoir
J'ai un tableau classique avec 5 colonnes
j'ai une colonnes "Thèmes" B3:B100
dans laquelle j'ai plusieurs thèmes ex Alpha, Beta, Charly etc.
Une fois que la feuille est triée, je souhaite créer un userfrom sur lequel,
il y a des checkbox, Alpha, Beta, Charly etc
Si je coche Alpha, et que je valide, cela imprime uniquement les lignes
ayant pour thème "Alpha"
Je vous remercie
Didier

2 réponses

Avatar
Hervé
Bonsoir Didier,
Afin de simplifier la création de tous les CheckBox, tu peux les créer
dynamiquement :
A mettre dans un module de classe que tu renomme "ClsChkClic"
'-------
Public WithEvents GroupeChk As MSForms.CheckBox

Private Sub GroupeChk_Click()
'd'ici tu peux appeler la proc qui va gérer ton impression
Impression GroupeChk.Caption

End Sub
'------

A mettre dans le module de ta Form où tu aura au préalable posé un Frame
auquel tu aura mis la propriété "ScrollBars" à 2 (fmScrollBarsVertical) :
'------
Dim Chk() As New ClsChkClic

Private Sub UserForm_Initialize()

Dim Plage As Range
Dim I As Integer
Dim J As Integer
Dim Haut As Long
Dim Increment As Integer
Dim Ctrl As Control
Haut = 10
Increment = 1

Set Plage = Worksheets("Feuil1").[B3:B100]

For I = 1 To Plage.Count
With Frame1.Controls.Add("Forms.CheckBox.1", "Chk" & Increment, True)
.Left = 10
.Top = Haut
.Width = 60
.Height = 15
.Caption = Plage(I)
End With
Haut = Haut + 16
Increment = Increment + 1

Next I

I = 0

For Each Ctrl In Me.Frame1.Controls
I = I + 1
ReDim Preserve Chk(1 To I)
Set Chk(I).GroupeChk = Ctrl
Next Ctrl

Frame1.ScrollHeight = Haut + 10
Frame1.ScrollTop = 2

Set Ctrl = Nothing

End Sub
'-----
A mettre dans un module standard :
'-----
Sub Impression(Nom_Chk As String)

MsgBox Nom_Chk

End Sub
'-----
Le titre de la case à cocher est passé en argument à la proc Impression, il
ne te reste plus qu'à l'écrire en fonction du résultat que tu désire. Pour
le test, le nom de la case à cocher est affiché dans un boite de message.

Salutations.
Hervé



"Didier Novarin" a écrit dans le message de
news:
Bonsoir
J'ai un tableau classique avec 5 colonnes
j'ai une colonnes "Thèmes" B3:B100
dans laquelle j'ai plusieurs thèmes ex Alpha, Beta, Charly etc.
Une fois que la feuille est triée, je souhaite créer un userfrom sur
lequel, il y a des checkbox, Alpha, Beta, Charly etc
Si je coche Alpha, et que je valide, cela imprime uniquement les lignes
ayant pour thème "Alpha"
Je vous remercie
Didier



Avatar
Didier Novarin
Merci beaucoup Hervé, c'est exactement cela !
Bravo
Bonne soirée
Didier

"Hervé" a écrit dans le message de news:
ucT%23I$
Bonsoir Didier,
Afin de simplifier la création de tous les CheckBox, tu peux les créer
dynamiquement :
A mettre dans un module de classe que tu renomme "ClsChkClic"
'-------
Public WithEvents GroupeChk As MSForms.CheckBox

Private Sub GroupeChk_Click()
'd'ici tu peux appeler la proc qui va gérer ton impression
Impression GroupeChk.Caption

End Sub
'------

A mettre dans le module de ta Form où tu aura au préalable posé un Frame
auquel tu aura mis la propriété "ScrollBars" à 2 (fmScrollBarsVertical) :
'------
Dim Chk() As New ClsChkClic

Private Sub UserForm_Initialize()

Dim Plage As Range
Dim I As Integer
Dim J As Integer
Dim Haut As Long
Dim Increment As Integer
Dim Ctrl As Control
Haut = 10
Increment = 1

Set Plage = Worksheets("Feuil1").[B3:B100]

For I = 1 To Plage.Count
With Frame1.Controls.Add("Forms.CheckBox.1", "Chk" & Increment, True)
.Left = 10
.Top = Haut
.Width = 60
.Height = 15
.Caption = Plage(I)
End With
Haut = Haut + 16
Increment = Increment + 1

Next I

I = 0

For Each Ctrl In Me.Frame1.Controls
I = I + 1
ReDim Preserve Chk(1 To I)
Set Chk(I).GroupeChk = Ctrl
Next Ctrl

Frame1.ScrollHeight = Haut + 10
Frame1.ScrollTop = 2

Set Ctrl = Nothing

End Sub
'-----
A mettre dans un module standard :
'-----
Sub Impression(Nom_Chk As String)

MsgBox Nom_Chk

End Sub
'-----
Le titre de la case à cocher est passé en argument à la proc Impression,
il ne te reste plus qu'à l'écrire en fonction du résultat que tu désire.
Pour le test, le nom de la case à cocher est affiché dans un boite de
message.

Salutations.
Hervé



"Didier Novarin" a écrit dans le message de
news:
Bonsoir
J'ai un tableau classique avec 5 colonnes
j'ai une colonnes "Thèmes" B3:B100
dans laquelle j'ai plusieurs thèmes ex Alpha, Beta, Charly etc.
Une fois que la feuille est triée, je souhaite créer un userfrom sur
lequel, il y a des checkbox, Alpha, Beta, Charly etc
Si je coche Alpha, et que je valide, cela imprime uniquement les lignes
ayant pour thème "Alpha"
Je vous remercie
Didier