Calcul de trimestre

Bonjour,

Je bloque sur une partie de mon code en VBA, je vais essayer de simplifier.

Je demande à l'utilisateur une plage de trimestre. C'est à dire, s'il veut des données à partir du trimestre 1 de l'année 2012 jusqu'au trimestre 4 de l'année 2013, je recupère 4 variable : trim1, annee1, trim2, annee2 qui seront respectivement 1,2012,4,2013.

Mon but est d'avoir une liste (que je nomme listePlage ici ) qui contient les données suivantes: listPlage = (20121,20122,20123,20124,20131,20132,20133,20134) .

Mon problème est que mon code ne marche pas si trim1 est différent de 1 et trim2 différent de 4. Or je voudrais donner la possibilité à l'utilisateur le choix de partir et arriver à n'importe quel trimestre..

Merci d'avance.

Voici le code que j'ai écrit :

Sub petittest()

Dim annee1, annee2, trim1, trim2 As String

trim1 = "1"
annee1 = "2012"
trim2 = "4"
annee2 = "2013"

Dim choix1, choix2 As String

choix1 = annee1 & trim1

choix2 = annee2 & trim2

Dim nbTrim As Integer

nbTrim = ((choix2 - choix1) Mod 4) + (4 * (annee2 - annee1))

Dim listeTrim(), listeAnnee(), listePlage() As String

ReDim listeTrim(nbTrim), listeAnnee(nbTrim), listePlage(nbTrim)

    For i = 0 To nbTrim Step 4

        listeTrim(i) = 1
        listeTrim(i + 1) = 2
        listeTrim(i + 2) = 3
        listeTrim(i + 3) = 4

            If i = 0 Then

                listeAnnee(i) = annee1
                listeAnnee(i + 1) = annee1
                listeAnnee(i + 2) = annee1
                listeAnnee(i + 3) = annee1

            Else

                listeAnnee(i) = annee1 + (i / 4)
                listeAnnee(i + 1) = annee1 + (i / 4)
                listeAnnee(i + 2) = annee1 + (i / 4)
                listeAnnee(i + 3) = annee1 + (i / 4)

            End If

    Next i

    For i = 0 To nbTrim

        listePlage(i) = listeAnnee(i) & listeTrim(i)

    Next i

End Sub

Bonsoir

A tester

Option Explicit
Sub petittest()
Dim Annee1 As String, Annee2  As String, Trim1 As String, Trim2 As String

  Trim1 = "1"
  Annee1 = "2012"
  Trim2 = "4"
  Annee2 = "2013"

Dim An As Integer, Trimestre As Integer, LastTrim As Integer
Dim ListePlage As String

  For An = Annee1 To Annee2
    If An > Annee1 Then Trim1 = 1
    If An = Annee2 Then LastTrim = Trim2 Else LastTrim = 4
    For Trimestre = Trim1 To LastTrim
      ListePlage = ListePlage & "," & An & Trimestre
    Next Trimestre
  Next An
  ListePlage = Mid(ListePlage, 2)
  MsgBox ListePlage
End Sub
Rechercher des sujets similaires à "calcul trimestre"