Bonjour
j'ai mis en place une macro dans un classeur me permettant d'importer le contenu d'une feuille de calcul d'un classeur fermé
(seules les données sont importées, pas les mises en forme)
Mon pb est le suivant : l'import se passe correctement sauf qu'il ne m'importe pas les entêtes de colonnes contenant des données numériques.
Pourquoi ? Quelqu'un a t'il une idée ?
Voici le code place sur lévénement clic d'un bouton
Sub TestQuery()
fich$ = 'C:\\Masque_AG.xls' nom du fichier fermé
Feuille$ = 'BASE' feuille à importer
QueryWorksheet fich, Feuille
End Sub
Public Sub QueryWorksheet(NomFichier$, Feuille$)
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
szConnect = 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & NomFichier & ';' & _
'Extended Properties=Excel 8.0;'
szSQL = 'SELECT * FROM [' & Feuille & '$];'
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
If Not rsData.EOF Then
Sheets('BASE').Range('A1').CopyFromRecordset rsData
Else
MsgBox 'Aucun enregistrement renvoyé.', vbCritical
End If
rsData.Close
Set rsData = Nothing
End Sub
j'ai mis en place une macro dans un classeur me permettant d'importer le contenu d'une feuille de calcul d'un classeur fermé
(seules les données sont importées, pas les mises en forme)
Mon pb est le suivant : l'import se passe correctement sauf qu'il ne m'importe pas les entêtes de colonnes contenant des données numériques.
Pourquoi ? Quelqu'un a t'il une idée ?
Voici le code place sur lévénement clic d'un bouton
Sub TestQuery()
fich$ = 'C:\\Masque_AG.xls' nom du fichier fermé
Feuille$ = 'BASE' feuille à importer
QueryWorksheet fich, Feuille
End Sub
Public Sub QueryWorksheet(NomFichier$, Feuille$)
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
szConnect = 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
'Data Source=' & NomFichier & ';' & _
'Extended Properties=Excel 8.0;'
szSQL = 'SELECT * FROM [' & Feuille & '$];'
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
If Not rsData.EOF Then
Sheets('BASE').Range('A1').CopyFromRecordset rsData
Else
MsgBox 'Aucun enregistrement renvoyé.', vbCritical
End If
rsData.Close
Set rsData = Nothing
End Sub