Slt tout le monde,

Je débute en VBA et j'ai un souci de programmation.

Je suis dans une programmation de comptage des jours ordinaires et des jours supplémentaires.

Les jours Sup sont représentes par les variables "RT" ou "FT".

J'aimerais si possible avoir votre aide sur le programme ci dessous que je veux mettre sur pieds.

Le but étant de faire en sorte et cela par semaine que à chaque fois que une variable nommée "RT" ou "FT" est précédée (pas forcément immédiatement) d'une variable nommée par exemple "M" ou "0", la variable "RT" qui représente alors une journée supplémentaire devient une journée ordinaire.

La semaine de travail étant comprise entre deux " RT" ou deux " R"?

Nb: RT= repos travaillé et R= Repos

Merci


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
44
45
46
47
48
49
Public Sub Compter()
Dim ligne As Long
Dim colonne As Long
Dim jourOrd As Long
Dim jourSup As Long
 
For ligne = 4 To 62
    For colonne = 4 To 33
        If Cells(ligne, colonne) = "X" Then
            jourOrd = jourOrd + 1
        ElseIf Cells(ligne, colonne) <> "X" Then
         Select Case Cells(ligne, colonne + 1)
            Case "RT", "FT"
                 jourOrd = jourOrd + 1
                 jourSup = jourSup - 1
            Case Else
                 If Cells(ligne, colonne) = "RT" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "FT" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "PL" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "AT" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "F" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "JS" Then
                    jourSup = jourSup + 1
                 ElseIf Cells(ligne, colonne) = "PL" Then
                    jourOrd = jourOrd + 1
                 ElseIf Cells(ligne, colonne) = "JB" Then
                    jourOrd = jourOrd + 1
                 ElseIf Cells(ligne, colonne) = "AT" Then
                    jourOrd = jourOrd + 1
                 ElseIf Cells(ligne, colonne) = "DM" Then
                    jourOrd = jourOrd + 1
                 ElseIf Cells(ligne, colonne) = "F" Then
                     jourOrd = jourOrd + 1
                 End If
            End Select
        End If
        Cells(ligne, 35) = jourOrd
        Cells(ligne, 36) = jourSup
    Next colonne
    jourOrd = 0
    jourSup = 0
Next ligne
 
End Sub