cfgluciole1 | Bonjour oovaveoo,
Le code entier est un peu long mais je peux t'expliquer plus en détail ma manœuvre:
Je dispose de deux onglets (Feuil 6 et Feuil 7) dans lesquels sont situés des données (différentes) rangées par années (de 2012 à 2015)
Mon but est d'avoir une macro qui prend en entrée une année de début (Cells (2,3)) et de fin (Cells(3,3)) et qui me permet d'afficher uniquement les données entre des deux années sur les deux feuilles. Le bouton gérant la macro est sur la Feuil6.
c1 et c2 sont des cellules permettant de repérer la ligne et colonne des années sur la feuille 6 (ce sont des balises pour repérer où je dois chercher mes années)
Dans mon premier onglet, chaque année a 3 colonnes de données ( d'où le 3 * (i-1))
Dans mon deuxième onglet, chaque année a 10 colonnes de données ( d'où le 10* (i-1))
Je te mets ci dessous un aperçu plus large de la macro:
Code :
- Sub Macromasquer()
- Feuil6 .Select
- ActiveSheet.Columns.Select
- Selection.EntireColumn.Hidden = False
-
- Dim n As Integer
- n = 0
- Dim nbvide As Integer
- nbvide = 2
-
- For i = 1 To 3
-
- Feuil6.Select
- If Cells(c1.Row, 3 * (i - 1) + c2.Column + 1).Value < Cells(2, 3).Value Then
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 1).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 2).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 3).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
-
- Feuil7.Select
- Cells(1, nbvide + 10 * (i - 1) + 1 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 2 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 3 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 4 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 5 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 6 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 7 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 8 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 9 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 10 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
-
- End If
-
- Feuil6.Select
- If Cells(c1.Row, 3 * (i - 1) + c2.Column + 1).Value > Cells(3, 3).Value Then
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 1).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 2).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(c1.Row, 3 * (i - 1) + c2.Column + 3).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- MsgBox (nbvide + 10 * (i - 1) + 1 + n)
-
- Feuil7.Select
- Cells(1, nbvide + 10 * (i - 1) + 1 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 2 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 3 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 4 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 5 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 6 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 7 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 8 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 9 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
- Cells(1, nbvide + 10 * (i - 1) + 10 + n).Select
- ActiveCell.Columns.Select
- Selection.EntireColumn.Hidden = True
-
- End If
-
- n = 1
-
- Next i
|
Je ne sais pas si cela t'aide dans ta démarche pour m'aider mais j'espère que c'est assez clair, sinon n'hésites pas à me redemander.
Merci beaucoup,
Cfgluciole1 |