[VBA]Jet.OLEDB.4.0

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

43classeur1.xlsx (8.84 Ko)

Bonjour,

Il ne manque pas de colonnes, dont une avec des libellés de lignes ?

Sinon, utilise Récupérer et transformer (Power Query) intégré à ta version Excel.

Cdlt.

Non les colonnes sont toutes présentes.

Power query ?

Rechercher des sujets similaires à "vba jet oledb"