Bonjour
Suite de mon projet, je rencontre un problème conceptuel.
La partie de code suivante, fonctionne très bien (les variables period et D_period sont justes déclarées)
Et voici ce que ça donne, on peut constater qu'un locataire qui rentre en février, n'a pas le mois de janvier activé
Mais j'ai 2 contraintes supplémentaires
La périodicité des loyers, et le début de cette périodicité. c'est a dire ne faire apparaitre que les mois où le loyer est dû.
Avec 1, j’aurai fait méthode un peu bourrin avec des IF Then, mais avec les 2, ça devient lourd, très lourds
Je suis sur qu'il y a d'autres méthode, mais je suis ignare en ce domaine
Si une bonne âme voulais m'aiguiller (voir beaucoup ) je l'en remercie
Suite de mon projet, je rencontre un problème conceptuel.
La partie de code suivante, fonctionne très bien (les variables period et D_period sont justes déclarées)
VB:
' Création reporting mensuel
Dim Date1 As Date, Date2 As Date, M As Integer, Mois(1 To 12) As String, Period As String, D_Period As String
Date1 = CDate(TextBox7)
Date2 = CDate(TextBox8)
Period = WorksheetFunction.VLookup(ComboBox1.Value, Ws.Range("A1:AS50"), 26, False) ' récupère la périodicité, combobox avec comme liste (mensuel, bimensuel, trimestriel, semestriel, annuel)
D_Period = WorksheetFunction.VLookup(ComboBox1.Value, Ws.Range("A1:AS50"), 45, False) 'récupère le début de périodicité, combobox des mois de l'année
For M = 1 To 12
Mois(M) = Format(DateSerial(1, M, 1), "mm")
Next M
If Val(Mois(1)) >= Month(Date1) And Val(Mois(1)) <= Month(Date2) Then Mois(1) = "Janvier" Else Mois(1) = ""
If Val(Mois(2)) >= Month(Date1) And Val(Mois(2)) <= Month(Date2) Then Mois(2) = "Février" Else Mois(2) = ""
If Val(Mois(3)) >= Month(Date1) And Val(Mois(3)) <= Month(Date2) Then Mois(3) = "Mars" Else Mois(3) = ""
If Val(Mois(4)) >= Month(Date1) And Val(Mois(4)) <= Month(Date2) Then Mois(4) = "Avril" Else Mois(4) = ""
If Val(Mois(5)) >= Month(Date1) And Val(Mois(5)) <= Month(Date2) Then Mois(5) = "Mai" Else Mois(5) = ""
If Val(Mois(6)) >= Month(Date1) And Val(Mois(6)) <= Month(Date2) Then Mois(6) = "Juin" Else Mois(6) = ""
If Val(Mois(7)) >= Month(Date1) And Val(Mois(7)) <= Month(Date2) Then Mois(7) = "Juillet" Else Mois(7) = ""
If Val(Mois(8)) >= Month(Date1) And Val(Mois(8)) <= Month(Date2) Then Mois(8) = "Août" Else Mois(8) = ""
If Val(Mois(9)) >= Month(Date1) And Val(Mois(9)) <= Month(Date2) Then Mois(9) = "Septembre" Else Mois(9) = ""
If Val(Mois(10)) >= Month(Date1) And Val(Mois(10)) <= Month(Date2) Then Mois(10) = "Octobre" Else Mois(10) = ""
If Val(Mois(11)) >= Month(Date1) And Val(Mois(11)) <= Month(Date2) Then Mois(11) = "Novembre" Else Mois(11) = ""
If Val(Mois(12)) >= Month(Date1) And Val(Mois(12)) <= Month(Date2) Then Mois(12) = "Décembre" Else Mois(12) = ""
NewFiche.Range("B13").Value = Mois(1) ' Janvier
NewFiche.Range("B14").Value = Mois(2) ' Février
NewFiche.Range("B15").Value = Mois(3) ' Mars
NewFiche.Range("B16").Value = Mois(4) ' Avril
NewFiche.Range("B17").Value = Mois(5) ' Mai
NewFiche.Range("B18").Value = Mois(6) ' Juin
NewFiche.Range("B19").Value = Mois(7) ' Juillet
NewFiche.Range("B20").Value = Mois(8) ' Août
NewFiche.Range("B21").Value = Mois(9) ' Septembre
NewFiche.Range("B22").Value = Mois(10) ' Octobre
NewFiche.Range("B23").Value = Mois(11) ' Novembre
NewFiche.Range("B24").Value = Mois(12) ' Décembre
Et voici ce que ça donne, on peut constater qu'un locataire qui rentre en février, n'a pas le mois de janvier activé
Mais j'ai 2 contraintes supplémentaires
La périodicité des loyers, et le début de cette périodicité. c'est a dire ne faire apparaitre que les mois où le loyer est dû.
Avec 1, j’aurai fait méthode un peu bourrin avec des IF Then, mais avec les 2, ça devient lourd, très lourds
Je suis sur qu'il y a d'autres méthode, mais je suis ignare en ce domaine
Si une bonne âme voulais m'aiguiller (voir beaucoup ) je l'en remercie