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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager