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