Sub requete_BD()
Dim J As Long
Dim Ws As Worksheet
Dim NomFeuille As Variant, Sel As Variant
Dim Dossier_Base As String
Dim qt As QueryTable
Set Ws = Sheets("Sorties Bilan")
For J = 7 To Ws.Range("AO" & Ws.Rows.Count).End(xlUp).Row
NomFeuille = Ws.Range("AO" & J)
If Not IsError(NomFeuille) Then
If Not ExisteFeuille(NomFeuille) Then Sheets.Add(after:=Sheets(Sheets.Count)).Name = NomFeuille
Range("A1") = NomFeuille
Sheets("Données").Select
Dossier_Base = "\\srv11\c$\AWAzur3307\MyDATA\" & NomFeuille
sqlstring = "SELECT Count (*) AS `compte_0.CPT_CODE`, balance_0.BAL_REV,balance_0.COL_CODE_SUP " & vbLf & _
"FROM `" & NomFeuille & "`.balance balance_0, `" & NomFeuille & "`.compte compte_0 " & vbLf & _
"WHERE balance_0.CPT_CODE = compte_0.CPT_CODE" & vbLf & _
"GROUP BY balance_0.BAL_REV, balance_0.COL_CODE_SUP"
connstring = _
"ODBC;" & _
"DRIVER={MySQL ODBC 9.0 Unicode Driver};" & _
"SERVER=SRV11;" & _
"PORT=3307;" & _
"Database=" & NomFeuille & ";" & _
"USER=root;" & _
"PASSWORD=acdpass;"
On Error Resume Next
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A2"), Sql:=sqlstring)
.Refresh BackgroundQuery:=False
End With
End If
Next J
Ws.Select
End Sub
Function ExisteFeuille(Nom) As Boolean: ExisteFeuille = False
On Error Resume Next
ExisteFeuille = Sheets(Nom).Name <> ""
ExisteFeuille = Err = 0
On Error GoTo 0
End Function