Bonjour,
J'utilise une macro afin de récuperer un range dans un classeur fermé, j'utilise alors le driver "Microsoft.Jet.OLEDB.4.0".
Le problème quand j'importe j'ai plusieurs type de donnée (k€, heure, etc.), j'aimerais pouvoir forcer le type de donnée importée à numérique. Soit avoir uniquement un format numérique sans autres type (pas de %, k€, heure,etc.)
Voici ma macro d'import :
Function RequeteClasseurFerme(PathCopyFile As String, SheetCopyName As String, PasteRangeLocation As String)
Dim Cn As New ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
'Définit le classeur fermé servant de base de données
Fichier = PathCopyFile
'Nom de la feuille dans le classeur fermé
NomFeuille = SheetCopyName
Set Cn = New ADODB.Connection
'--- Connection ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;IMEX=0""" 'IMEX = format d'import : 0=nombre et 1 = texte
.Open
End With
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
If SheetCopyName = "Fiche" Then
texte_SQL = "SELECT * FROM [Fiche Business Review$A1:AB57]"
End If
If SheetCopyName = "Analyse" Then
texte_SQL = "SELECT * FROM [Analyse$A1:AB88]"
End If
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule
Range(PasteRangeLocation).Cells(1, 1).CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End Function
Quand j'éxecute je me retrouve donc avec pleins de format de donnée différent mais je ne sais pas comment forcer le format à numérique lors de l'import.
Voir mon fichier exemple, je veux le format de la colonne A sur les autres colonnes.
Il y'a t'il un paramètre à changer dans Extended Properties= ?
Merci
Vincent