bonjour Steph
'une1ère méthode,d'abord les entêtes,puis les données
' You can 't get headers using the CopyFromRecordset method. The only way
'to get them is to loop the Fields collection and place the headers on the
'worksheet prior to calling CopyFromRecordset, e.g.
Sub AddHeaders()
'--
'Rob Bovey, MCSE, MCSD, Excel MVP
Dim rsData As ADODB.Recordset
Dim lCount As Long
Set rsData = New ADODB.Recordset
rsData.Open 'SQL String', 'Connection String', _
adOpenForwardOnly, adLockReadOnly, adCmdText
If Not rsData.EOF Then
''' Add the Recordset headers.
For lCount = 1 To rsData.Fields.Count
With Sheet1.Range('A1').Offset(0, lCount - 1)
.Value = rsData.Fields(lCount).Name
End With
''' Dump the recordset
Sheet1.Range('A2').CopyFromRecordset rsData
End If
rsData.Close
Set rsData = Nothing
End Sub
'une2ème méthode
'obtenir des données d'un classeur fermé
'Héctor Miguel, mpep
'Sub Get_Test()
' HowTo = MsgBox('Select a way to get data from...' & vbCr & _
' 'Yes = Form 1.- Use Sheet & Cell range' & vbCr & _
' ' No = Form 2.- Use Named ranges', _
' vbYesNo + vbQuestion, 'Query form')
' If HowTo = vbYes _
' Then GetExternalData 'D:\\OLE_Test.xls', 'Feuil1', 'a1:a5', False _
' Else GetExternalData 'D:\\OLE_Test.xls', '', 'Values', False
'End Sub
Sub LitDatas()
Dim Fich$, Arr
Fich = 'd:\\TestDataToRead.xls''à adapter
'récup des données à partir de l'adresse d'une plage de cellules
GetExternalData Fich, 'Feuil1', 'A1:G20', False, Arr
'si tu employes,plage nommée,la ligne çi-dessus en commentaires,enlever ' à getexternaldata plus bas
'récup des données à partir du nom d'une plage de cellules nommée,false sans entêtes,true avec entêtes
' GetExternalData Fich, '', 'plagenommée', False, Arr
With ThisWorkbook.Sheets('Feuil1')
.Range('A1', .Cells(UBound(Arr, 1), UBound(Arr, 2))).Value = Arr
End With
End Sub
bonne continuation
à bientôt