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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| Option Explicit
Sub NouvelleAnnee()
Dim wSh As Worksheet, kAn As Integer, kAnS As Integer, kR As Long
For Each wSh In Worksheets
If wSh.Name Like "ROA_*" Then
With wSh
kAn = Mid(.Name, 5, 2) '--- n° année
kAnS = kAn + 1 '--- n° année suivante
.Name = Replace(.Name, "ROA_" & kAn, "ROA_" & kAnS) '--- change nom de l'onglet
.Range("B6") = DateAdd("yyyy", 1, .Range("B6")) '--- change date en B6
If .Range("F6") <> "" Then
.Range("F6") = .Range("F6") + 1 '--- change F6
End If
.Range("K1") = .Name
End With
ElseIf wSh.Name = "00-Recap" Then
With wSh
kAn = Right(.Range("D1").Value, 4) '--- année en 4 chiffres
kAnS = kAn + 1
.Range("B6") = Replace(.Range("B6"), kAn, kAnS)
.Range("B6") = Replace(.Range("B6"), kAn + 3, kAnS + 3)
.Range("E9") = Replace(.Range("E9"), kAn, kAnS)
.Range("F9") = Replace(.Range("F9"), kAn, kAnS)
.Range("G9") = Replace(.Range("G9"), kAn, kAnS)
.Range("H9") = Replace(.Range("H9"), kAn, kAnS)
.Range("I9") = kAn + 2
.Range("J9") = kAn + 3
.Range("K9") = kAn + 4
kR = 10
kAn = kAn Mod 100 '--- année en 2 chiffres
kAnS = kAn + 1
While .Range("B" & kR) <> ""
.Range("B" & kR) = Replace(.Range("B" & kR), "ROA_" & kAn, "ROA_" & kAnS)
If .Range("BC" & kR) <> "" Then
.Range("BC" & kR) = DateAdd("yyyy", 1, .Range("BC" & kR))
End If
.Range("BG" & kR) = kAnS
.Range("DB" & kR) = .Range("BA" & kR) & "_" & .Range("BG" & kR) & "_" & .Range("BB" & kR) & "_" & .Range("BZ" & kR)
If .Range("B" & kR) <> .Range("DB" & kR) Then
MsgBox "Anomalie sur la ligne " & kR & vbCrLf & _
"en B" & kR & ": " & .Range("B" & kR) & vbCrLf & _
"en DB" & kR & ": " & .Range("dB" & kR) & vbCrLf & vbCrLf & _
"Noter l'anomalie, la mise à jour va continuer.", _
, "Anomalie dans feuille " & wSh.Name
End If
kR = kR + 1
Wend
End With
ElseIf wSh.Name Like "02-Pr*" Then
'--- sans doute pas vraiment une bonne idée
'--- il vaudrait mieux recopier directement de feuille "01-Recap"
'--- exemple erreurs lignes 54 et 55
With wSh
kAn = Right(.Range("B6").Value, 4) - 3 '--- année en 4 chiffres
kAnS = kAn + 1
.Range("B6") = Replace(.Range("B6"), kAn, kAnS)
.Range("B6") = Replace(.Range("B6"), kAn + 3, kAnS + 3)
.Range("E9") = Replace(.Range("E9"), kAn, kAnS)
.Range("F9") = Replace(.Range("F9"), kAn, kAnS)
.Range("G9") = kAn + 2
.Range("H9") = kAn + 3
.Range("I9") = kAn + 4
kR = 10
kAn = kAn Mod 100 '--- année en 2 chiffres
kAnS = kAn + 1
While .Range("B" & kR) <> ""
.Range("B" & kR) = Replace(.Range("B" & kR), "ROA_" & kAn, "ROA_" & kAnS)
kR = kR + 1
Wend
End With
End If
Next wSh
End Sub |
Partager