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
| Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cnn As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim Fichier As String, Cellule As String, Feuille As String, nomSite As String
Dim n As Integer, i As Integer
nomSite = Range("C2").Value
Feuille = "2019$"
Cellule = "A3:AE316"
Fichier = "Z:\PBR_LOG\ARIBA_2019\TestVBA\TOTAL\TOTALNord-Est.xlsx"
If Target.Address = "$C$2" Then
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties='Excel 12.0;HDR=yes'"
Set Rst = Cnn.Execute("SELECT count(*) as nb FROM [" & Feuille & "]")
n = Rst("nb")
Cellule = "A3:AE" & n
Set Rst = New ADODB.Recordset
If Range("C2").Value = "TOTAL" Then
For i = 9 To 45
Set Rst = Nothing
Set Rst = Cnn.Execute("SELECT SUM(PayéTTC) FROM [" & Feuille & Cellule & "] WHERE P4 = '" & Cells(i, 1) & "'")
Cells(i, 2).CopyFromRecordset Rst
Rst.Close
Next i
Else
For i = 9 To 45
Set Rst = Nothing
Set Rst = Cnn.Execute("SELECT SUM(PayéTTC) FROM [" & Feuille & Cellule & "] WHERE SITE = '" & nomSite & "' AND P4 = '" & Cells(i, 1) & "'")
Cells(i, 2).CopyFromRecordset Rst
Rst.Close
Next i
End If
End If
End Sub |
Partager