Bonjour Je ne parle pas français, je tape avec le traducteur Google.
J'essaie d'obtenir des données de différentes feuilles du même fichier Excel avec ADO.
Je peux importer des données d'autres fichiers Excel mais pas du même fichier Excel
j'essaye de le faire avec des codes pierrep56
Option Explicit
Public Cnx As Object, Rst As Object
Public Req As String
Sub BILAN_ADO()
End Sub
Sub Recup(Optional x As Byte)
End Sub
Function Select_Db(Req As String, Optional Head As Byte = 1) As Variant
Dim T As Variant, Rcd As Variant
Dim lig As Long, col As Long, i As Long, j As Long, f As Integer
On Error GoTo errhdlr
ReDim Rcd(1 To 1, 1 To 1)
Rst.Open Req, Cnx, 3
lig = Rst.RecordCount
If lig > 0 Then
Rst.MoveFirst
T = Rst.GetRows
col = Rst.Fields.Count
ReDim Rcd(1 To lig + Head, 1 To col)
For j = 0 To col - 1
Rcd(1, j + 1) = Rst.Fields(j).Name
For i = 0 To lig - 1
Rcd(i + 1 + Head, j + 1) = IIf(IsNull(T(j, i)), Null, T(j, i))
Next i
Next j
End If
Select_Db = Rcd
Exit Function
errhdlr:
Rcd(1, 1) = Req & vbCrLf & "Erreur n°" & Err.Number & vbCrLf & Err.Description
Select_Db = Rcd
f = FreeFile()
Open ThisWorkbook.Path & "\Log.txt" For Append As #f
Print #f, Now() & " | " & Rcd(1, 1) & vbCrLf
Close #f
End Function
Sub Connect_xls(Ndf As String)
Set Cnx = CreateObject("ADODB.Connection")
Cnx.provider = "MSDASQL"
#If Win64 Then ' Version 64bits
Cnx.Open = "DSN=Excel Files;DBQ=" & Ndf & ";ReadOnly=False;HDR=Yes';"
#Else ' Version 32bits
Cnx.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
"DBQ=" & Ndf & "; ReadOnly=False;"
#End If
Set Rst = CreateObject("ADODB.Recordset")
End Sub
Sub Close_Cnx(Optional x As Byte)
On Error Resume Next
If x > 0 Then Rst.Close
Cnx.Close
Set Cnx = Nothing
Set Rst = Nothing
End Sub