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.
Partager