command pour activer une combobox dans une userform

mikyross

XLDnaute Nouveau
bonjours a tous,
J'ai réussi a ajouter une combobox5 au user forme que job75 ma créé pour mon calendrier et je ne sais pas comment relier la combobox a la fonction dont je veux quelle fasse sois imprimer le nombre de copie en fonction de la valeur sélectionné quelqu'un a une idée pour m'aider a ce sujet
merci a tous j ai mis le fichier en pièce jointe
 

Pièces jointes

  • horaire-travaille-Impression groupér (6,0).xls
    136 KB · Affichages: 43
  • horaire-travaille-Impression groupér (6,0).xls
    136 KB · Affichages: 42
  • horaire-travaille-Impression groupér (6,0).xls
    136 KB · Affichages: 52

job75

XLDnaute Barbatruc
Re : command pour activer une combobox dans une userform

Bonsoir mikyross,

Il y a 2 solutions.

1) Répétition de l'impression de chaque page :

Code:
F2.PrintOut Copies:=Val(ComboBox5) 'pour imprimer
2) Répétition de l'impression de toutes les pages :

Code:
Private Sub CommandButton1_Click() 'OK
Dim npage As Byte, F1 As Worksheet, copie As Byte, F2 As Worksheet, i%, jour As Date
npage = ComboBox4 'nombre de mois par page
Me.Hide
Set F1 = ActiveSheet
For copie = 1 To Val(ComboBox5)
'-----
Next
Me.Show
End Sub
Bonne nuit.
 

mikyross

XLDnaute Nouveau
Re : command pour activer une combobox dans une userform

Re,
j 'ai trouver mon erreur j'avais oublier de mettre un "next" la toute fonctionne très bien
merci pour les ligne de commande je n aurais jamais trouver sa en fouillant sur le web

P.S: Si je fais une combobox "couleur impression" avec une liste noir et blanc, couleur, est ce qu'il y a une ligne de commande que je pourrais insérer dans ma userforme pour exécuter ma liste
 

job75

XLDnaute Barbatruc
Re : command pour activer une combobox dans une userform

Re,

Pour l'impression en noir et blanc ajoutez une case à cocher (CheckBox1) et complétez la mise en page :

Code:
With F2.PageSetup
  .PrintArea = "$A:$H"
  .CenterHorizontally = True
  .CenterVertically = Val(ComboBox3) = 1 Or npage = 1
  .Orientation = IIf(Val(ComboBox3) = 1 Or npage = 1, xlLandscape, xlPortrait)
  .BlackAndWhite = CheckBox1
  .FitToPagesWide = 1
  .FitToPagesTall = 1
End With
A+
 

mikyross

XLDnaute Nouveau
Re : command pour activer une combobox dans une userform

Re,
sa fonctionne bien avec la (checkbox1) pour l impression en noir et blanc
pour les copie avec la combobox 5 est ce normal qu'il m imprime tjrs une copie de plus que la valeur dans la box
merci
 

mikyross

XLDnaute Nouveau
Re : command pour activer une combobox dans une userform

Re,
J'ai trouver pourquoi j'avais toujours une page de plus avec la solution #1 j'avais oublier d'enlever "F2.PrintOut 'pour imprimer"
merci encore pour ton aide et dsl pour les erreurs je suis nouveau sur excel c'est ma première année mais pour la solution #2 j ai pas réussi encore a faire fonctionner je vais te copier mon code peut-etre tu vas voir ou est mon erreur
 
Dernière édition:

mikyross

XLDnaute Nouveau
Re : command pour activer une combobox dans une userform

Re voici le code:

Option Explicit

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then ComboBox1 = "Janvier"
End Sub

Private Sub ComboBox2_Change()
If ComboBox2.ListIndex = -1 Then ComboBox2 = Year(Date)
End Sub

Private Sub ComboBox3_Change()
If ComboBox3.ListIndex = -1 Then ComboBox3 = "12 mois"
Me.Caption = "Impression " & ComboBox3
End Sub

Private Sub ComboBox4_Change()
If ComboBox4.ListIndex = -1 Then ComboBox4 = 4
End Sub
Private Sub ComboBox5_Change()
If ComboBox5.ListIndex = -1 Then ComboBox5 = 1
End Sub
Private Sub CommandButton1_Click() 'OK
Dim npage As Byte, F1 As Worksheet, copie As Byte, F2 As Worksheet, i%, jour As Date
npage = ComboBox4 'nombre de mois par page
Me.Hide
Set F1 = ActiveSheet
For copie = 1 To Val(ComboBox5)
Next
F1.Copy 'nouveau document
Set F2 = ActiveSheet
F1.Activate
With F2.PageSetup
.PrintArea = "$A:$H"
.CenterHorizontally = True
.CenterVertically = Val(ComboBox3) = 1 Or npage = 1
.Orientation = IIf(Val(ComboBox3) = 1 Or npage = 1, xlLandscape, xlPortrait)
.BlackAndWhite = CheckBox1
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Application.DisplayAlerts = False
For i = 1 To Val(ComboBox3)
With F2.[A1].Offset(16 * ((i - 1) Mod npage))
F1.[1:16].Copy .Cells
.Cells.Copy .Cells 'vide le presse-papiers
jour = DateSerial(Val(ComboBox2), ComboBox1.ListIndex + i, 1)
.Cells(, 4) = Application.Proper(Format(jour, "mmmm"))
.Cells(, 6).Name = "An"
.Cells(, 6) = Year(jour)
.Resize(16, 8) = .Resize(16, 8).Value
End With
If i Mod npage = 0 Or i = Val(ComboBox3) Then
DoEvents 'pour que l'affichage soit bien à jour
'F2.PrintPreview 'pour tester
F2.PrintOut 'pour imprimer
'F2.PrintOut Copies:=Val(ComboBox5) 'pour imprimer
F2.[A:H].Clear
End If
Next
F2.Parent.Close False
Me.Show
End Sub


Private Sub UserForm_Initialize()
Dim a, i%
a = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
For i = 1 To 12
ComboBox1.AddItem a(i - 1)
ComboBox3.AddItem i & " mois"
ComboBox5.AddItem i
Next
For i = 1 To 6
ComboBox4.AddItem i
Next
ComboBox1 = IIf([D1] = "", " ", [D1])
ComboBox3 = " "
ComboBox4 = " "
ComboBox5 = " "
For i = 2009 To 2020
ComboBox2.AddItem i
Next
ComboBox2 = IIf([An] = "", " ", [An])
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : command pour activer une combobox dans une userform

Bonjour mikyross, le forum,

Ça alors, vous ne savez pas comment fonctionne une boucle For/Next :confused:

Code:
For copie = 1 To Val(ComboBox5)
Next
ne sert à rien bien sûr.

Il faut insérer le Next de cette boucle comme indiqué au post #2, c'est à dire juste avant Me.Show.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU