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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
| Sub mise_a_jour()
If Sheets("Liste films").FilterMode = True Then
ActiveSheet.ShowAllData
End If
i = 9
n = 0
While Sheets("Liste films").Cells(i, 1) <> ""
n = n + 1
i = i + 1
Wend
'tri par ordre alphabétique:
ActiveWorkbook.Worksheets("Liste films").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Liste films").Sort.SortFields.Add Key:=Range("A4"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Liste films").Sort
.SetRange Range(Cells(9, 1), Cells(8 + n, 25))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Liste films").Cells(2, 14) = Application.WorksheetFunction.Sum(Range(Cells(9, 7), Cells(8 + n, 7))) / 1000 'taille en Go
Sheets("Liste films").Cells(3, 14) = n 'nombre de films
Sheets("Liste films").Range(Cells(9, 1), Cells(8 + n, 1)).Interior.TintAndShade = 0
'repérage des doublons:
d = 0
For i = 9 To 8 + n - 1
If Sheets("Liste films").Cells(i, 1) = Sheets("Liste films").Cells(i + 1, 1) Then
Sheets("Liste films").Cells(i, 1).Interior.Color = vbGreen
Sheets("Liste films").Cells(i + 1, 1).Interior.Color = vbGreen
d = d + 1
End If
Next i
Sheets("Liste films").Cells(4, 14) = d 'nombre de doublons
Call generation_liens_hypertexte
Call check_hypertexte2
'détection films sans lien hypertexte:
h = 0
For i = 1 To n
If Sheets("Liste films").Cells(8 + i, 1).Hyperlinks.Count = 0 Then
Sheets("Liste films").Cells(8 + i, 1).Interior.Color = -4165632
h = h + 1
End If
Next i
If h <> 0 Then
Sheets("Liste films").Cells(6, 12) = "Films sans lien hypertexte:"
Sheets("Liste films").Cells(6, 14) = h
Else
Sheets("Liste films").Range(Cells(6, 12), Cells(6, 14)).ClearContents
End If
end sub
Sub generation_liens_hypertexte()
i = 9
n = 0
While Sheets("Liste films").Cells(i, 1) <> ""
n = n + 1
i = i + 1
Wend
'Génération des liens hypertexte:
For j = 1 To n
col1 = Sheets("Liste films").Cells(8 + j, 1)
col2 = Sheets("Liste films").Cells(8 + j, 2)
col3 = Sheets("Liste films").Cells(8 + j, 3)
col6 = Sheets("Liste films").Cells(8 + j, 6)
col8 = Sheets("Liste films").Cells(8 + j, 8)
col9 = Sheets("Liste films").Cells(8 + j, 9)
col23 = Sheets("Liste films").Cells(8 + j, 23)
col25 = Sheets("Liste films").Cells(8 + j, 25)
'construction et ajout du lien hypertexte:
If col9 <> "Catégorie à préciser" Then
If col8 = "Disque dur" Then
ch0 = "H:\Films\"
ch1 = Sheets("Liste films").Cells(8 + j, 9)
ElseIf col8 = "PC" Then
ch0 = "D:\Films\"
ch1 = ""
End If
ch2 = Sheets("Liste films").Cells(8 + j, 1)
ch3 = Sheets("Liste films").Cells(8 + j, 23)
If col6 = "AVI" Then
ch4 = ".avi"
ElseIf col6 = "MKV" Or col6 = "MKV/Corp" Then
ch4 = ".mkv"
End If
chlien = ch0 & ch1 & "\" & ch2 & " - " & ch3 & ch4
Sheets("Liste films").Cells(8 + j, 25) = chlien
Sheets("Liste films").Cells(8 + j, 1).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:=chlien
End If
Next j
End Sub
Sub check_hypertexte2()
i = 9
n = 0
While Sheets("Liste films").Cells(i, 1) <> ""
n = n + 1
i = i + 1
Wend
Dim sht As Worksheet, rng As Range
Set sht = ThisWorkbook.Worksheets("Liste films")
For Each rng In sht.Range("A9:A300")
With rng
If Len(.Value) Then
If IsFileExist(.Value) Then .Interior.Color = vbWhite Else .Interior.Color = vbRed
End If
End With
Next
End Sub
Function IsFileExist(FileName As String) As Boolean
IsFileExist = (Dir(FileName) <> "")
End Function |