Eviter de répeter du code dans fonction
Bonjour,
J'essaye d'alléger mon code, j'aimerais mettre un fonction qui m'incrémente, lorsque j'appelle ma fonction, un chiffre de 1 à 12 (représentant les mois de l'année)
Code:
1 2 3 4 5 6 7 8
| Sub text1()
Dim i As Integer
i = 1
Do Until i = 12
Call comptercellules(2013, i)
i = i + 1
Loop
End Sub |
J'ai pas envie à chaque fois de réécrire la ligne call pour chaque mois.
Alors j'ai essayé avec la fonction Do mais j'ai l'impression que je peux pas mettre de i à l'interieur.
Code:
1 2 3 4 5 6 7
| Sub text1()
Call comptercellules(2013, 1)
Call comptercellules(2013, 2)
Call comptercellules(2013, 3)
Call comptercellules(2013, 4)
..........
End Sub |
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
| Function comptercellules(strtext As String, strtext1 As String) As Long
'Dim comptercellules As Integer
Dim Cellules As Range
Dim LaDerniere As Integer
Dim i As Integer
LaDerniere = Worksheets("CUR SEMAINE").Cells(56555, 1).End(xlUp).Row
For i = 1 To LaDerniere
If Month(Range("A" & i).Value) = strtext1 And Year(Range("A" & i).Value) = strtext Then ' modifiez le code couleur 38 par celui de votre choix
comptercellules = comptercellules + 1
End If
Next i
Dim Plage As Range
For Each Cellules In Worksheets("Feuil1").Range("a1:a" & Worksheets("Feuil1").Range("a" & Worksheets("Feuil1").Rows.Count).End(xlUp).Row)
If Month(Cellules) = strtext1 And Year(Cellules) = strtext Then
If Plage Is Nothing Then Set Plage = Cellules(1, 2) Else Set Plage = Union(Plage, Cellules(1, 2))
End If
Next Cellules
Worksheets("Feuil1").Select
If Not Plage Is Nothing Then Plage.Select
Plage.Value = comptercellules
End Function
Sub text1()
Dim i As Integer
i = 1
Do Until i = 12
Call comptercellules(2013, i)
i = i + 1
Loop
End Sub |