Synthèse en fonction de critères user form
Bonjour à tous.
Je suis nouveau sur le forum et un peu débutant en vba, mais j'ai déjà trouvé plein d'aide sur ce forum.
Mais maintenant, je me retrouve confronté à un problème, qui ne paraît pas être insurmontable, mais je tourne en rond et je n'y arrive pas. J'aurais besoin de votre aide s'il vous plait.
Voici mon souci.
J'ai créé un fichier avec lequel je peux créer des commandes, que je mets à chaque fois sur des nouvelles feuilles. ça, pas de soucis ça marche.
Sur ces feuilles, pour plus de facilité (mais il doit y avoir un autre moyen) j'ai créé 3 listes déroulantes pour le jour (F1), le mois (F2) et l'année (F3).
Je peux synthétiser toutes ces commandes les unes après les autres sur une feuille que j'ai nommée IMPRIMER COMMANDES JOUR; ça aussi ça marche, mais je voudrais que la synthèse se fasse en fonction des critères de jour mois année que je sélectionne en activant un userform, qui me renvoi les valeurs das les cellules i1 j1 et k1 de ma feuille de synthèse.
C'est là que mon programme bloque, et surtout que je n'arrive pas à le programmer correctement.Je vous joins le code de ma macro pour voir si quelqu'un peut m'aider.
Merci d'(avance
Code:
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 35 36 37 38 39 40 41 42 43
| Sub imprimercommandes()
Dim i As Integer
Application.ScreenUpdating = False
Worksheets("IMPRIMER COMMANDES JOUR").Select
Rows("1:1000000").Select
Selection.Clear
UserForm1.Show
lg_recap = 1
For i = 10 To Sheets.Count
Sheets(i).Select
If Sheets(i).Name <> "IMPRIMER COMMANDES JOUR" Then
For lg_facture = 1 To 100
' on cherche une quantité positive
If IsNumeric(Sheets(i).Cells(lg_facture, 19)) Then ' > 0 Then
C EST ICI QUE CA NE MARCHE PAS
If Worksheets(i).Cells(6, 1).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(9, 1).Value And Worksheets(i).Cells(6, 2).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(10, 1).Value And Worksheets(i).Cells(6, 3).Value = Worksheets("IMPRIMER COMMANDES JOUR").Cells(11, 1).Value Then
JUSQU ICI
lg_recap = lg_recap + 1
Sheets(i).Range("A" & lg_facture & ":T" & lg_facture).Copy
Sheets("IMPRIMER COMMANDES JOUR").Cells(lg_recap, 1).PasteSpecial xlPasteValues
Sheets("IMPRIMER COMMANDES JOUR").Cells(lg_recap, 1).PasteSpecial xlPasteFormats
End If
End If
Next lg_facture
End If
Next i
Worksheets("IMPRIMER COMMANDES JOUR").Select
Range("A:C,E:E,L:T").Select
Range("L1").Activate
Selection.EntireColumn.Hidden = True
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 4
Columns("D:D").EntireColumn.AutoFit
Columns("H:H").EntireColumn.AutoFit
Columns("G:G").ColumnWidth = 3.14
'ActiveWindow.SelectedSheets.PrintPreview
'ActiveWindow.SmallScroll Down:=-21
Application.ScreenUpdating = True
End Sub |