Bonjour,
j'ai un soucis d'import d'une base de données dbf codée en utf-8 vers excel.
J'ai trouvé un macro sur le net qui me permet d'importer les données de ma base vers le classeur Excel sans ouvrir le dbf:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub importer_champDBF()
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library (dans VBE outils-référence)
Dim source As ADODB.Connection
Dim Requete As ADODB.Recordset
Dim Chemin As String, fichier As String, texte_SQL As String
 
Chemin = "C:\........."
'Chemin = ThisWorkbook.Path si ta base est dans le m^répertoire
fichier = "xxx.dbf """
 
Set source = New ADODB.Connection
source.Open _
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & _
Chemin & ";"
 
 
texte_SQL = "SELECT * FROM " & fichier & ";" 'si tu importe tout met * au lieu de tonchamp
 
Set Requete = New Recordset
Requete.Open texte_SQL, source, adOpenKeyset, adLockOptimistic
 
If Requete.EOF Then
MsgBox "Table vide..."
Exit Sub
End If
 
Application.ScreenUpdating = False
Range("A2").CopyFromRecordset Requete
 
Requete.Close
source.Close
 
End Sub

Cela fonctionne très bien sauf que les accents ne passent pas. Par exemple, au lieu d'avoir "Propriétaire" j'ai "Propri+®taire".
Y aurait t'il un moyen d'indiquer dans la macro que la base est en utf-8 et de demander à excel de convertir ?

Merci.