Bonjour,
Lorsque je transfère les données d'une feuille ouverte dans une variable tableau à l'aide du code ci-dessous :
Donnees = Range("A1").CurrentRegion
J'obtiens le résultat suivant :

Lorsque je vais chercher les données dans le même fichier fermé avec le dode ci-après :
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 37 38
| Sub RequeteClasseurFerme()
Dim Cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
Dim Donnees()
'Définit le classeur fermé servant de base de données
Fichier = "D:\druch\Documents\Motorola\Empower\Reporting\Développement macro\Test_mvts.xlsb"
'Nom de la feuille dans le classeur fermé
NomFeuille = "Données HP3000"
Set Cn = New ADODB.Connection
'--- Connection ---
With Cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans une variable tableau
Donnees = Rst.GetRows
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End Sub |
J'obtiens une inversion des lignes et colonnes :

Y aurait-il un moyen de garder le même ordre ligne-colonne ?
Vous remerciant par avance de l'aide que vous m'apporterez.
Partager