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
| Sub SupprLiaisonsTQ(xlWbk As Excel.Workbook, sSaufTQName As String)
Dim xlSheet As Excel.Worksheet
Dim sSaufTQName2 As String
Dim sTQName As String, bDeleteQuery As Boolean
Dim i As Integer
' Détermine le nom de la requête Excel pour la période précédente.
' ex : si sSaufTQName = "TQ_S1_12" -> TQ_S2_11
' si sSaufTQName = "TQ_S2_12" -> TQ_S1_12
If sSaufTQName Like "TQ_S1_##" Then
sSaufTQName2 = "TQ_S2_" & Format(CLng(Mid(sSaufTQName, 7, 2)) - 1, "00")
ElseIf sSaufTQName Like "TQ_S2_##" Then
sSaufTQName2 = "TQ_S1_" & Mid(sSaufTQName, 7, 2)
End If
' Parcourir les feuilles
For Each xlSheet In xlWbk.Worksheets
' Parcourir les requêtes Excel
For i = xlSheet.QueryTables.Count To 1 Step -1
sTQName = xlSheet.QueryTables(i).Name
' Si c'est une requête TQ_Sn_AA
If sTQName Like "TQ_S#_##" Then
bDeleteQuery = True
If (sTQName = sSaufTQName) Then bDeleteQuery = False
If (sTQName = sSaufTQName2) Then bDeleteQuery = False
If bDeleteQuery Then
xlSheet.QueryTables(i).Delete
End If
End If
Next
Next
End Sub |