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
| Sub Tri()
Dim sVersion As String, sVersionSGBD As String, sVersionWAS As String
Dim rg As Range, c As Range
Dim ar
Dim vOS As String, vSGBD As String
Dim bEstDifferent As Boolean
'Les versions doivent être écrites de cette façon, avec un "/" comme séparateur :
' XXXX/yyyyy/zz zz/wwww/
'il faut un "/" à la fin. Ceci car la recherche se fait sur x.x/
'le / est inclus pour différencier 5.5 de 5.5.1 par exemple
sVersionOS = "5.3/5.4/5.5/6.0/6.1/2008 SP2/2008 R2/2008 R2 SP1/Server 2008 SP2/Server 2008 R2/Server 2008 R2 SP1/"
sVersionSGBD = "2.6.3/2.6.4/5.1/5.5/8.4/9.0.3/9.7/11.2/2005 SP4/2008 SP2/2008 R2 SP1/Server 2005 SP4/Server 2008 SP2/Server 2008 R2 SP1/"
Set rg = Range("A4:a20") '<< ADAPTER LA PLAGE
For Each c In rg
vOS = c.Offset(0, 2)
vSGBD = c.Offset(0, 4)
'Test sur Version OS
bEstDifferent = False 'on présume que la version est dans la liste
If c.Offset(0, 2) <> "" Or c.Offset(0, 4) <> "" Then 'pour ne pas traiter les lignes vides
If c.Offset(0, 2) <> "" Then
vOS = CleanVersion(vOS)
If InStr(1, sVersionOS, vOS) = 0 Then
bEstDifferent = True 'version non trouvé, donc différente de la liste
c.Offset(0, 2).Interior.ColorIndex = 3 'OPTIONNEL identifier si trouvé
End If
End If
'Test sur Version SGBD
If c.Offset(0, 4) <> "" Then
vSGBD = CleanVersion(vSGBD)
If InStr(1, sVersionSGBD, vSGBD) = 0 Then
bEstDifferent = True
c.Offset(0, 4).Interior.ColorIndex = 3 'OPTIONNEL identifier si trouvé
End If
End If
If bEstDifferent Then 'au moins une des 2 version est différente (non trouvée)
c.Offset(0, 9) = "Vers Obsolescence" 'Optionnel, juste pour montre les lignes trouvées
'Copier vers Obsolescence (À ADAPTER)
Else
c.Offset(0, 9) = "Vers Greenwich"
'Copier vers Greenwich (À ADAPTER)
End If
End If
Next c
End Sub
Function CleanVersion(sVer As String) As String
If Left(sVer, 1) = "v" Then sVer = Mid(sVer, 2) 'enlever le "v" au début
'convertir les version x.x.x en x.x
'donc 5.5.14 équivalent à 5.5
If Len(sVer) - Len(Replace(sVer, ".", "")) > 1 Then 'si plus que un . dans la version alors
sVer = Left(sVer, InStr(InStr(1, sVer, ".") + 1, sVer, ".") - 1)
End If
sVer = sVer & "/"
CleanVersion = sVer
End Function |