Structurer des données

VBA_93 -  
 VBA_93 -
Bonjour à tous,

J'ai réalisé (avec l'aide de Zoul67) une macro qui me permet de convertir des fichiers en .dbf en .csv sous excel 2010 français.
Voici la macro :
Sub ConvertDBF_to_CSV()
Dim strDocPath As String
Dim strCurrentFile As String
Dim Fname As String
Dim sFiles
Dim x As Integer, y As Integer
Application.ScreenUpdating = True

x = 0
y = 0
sFiles = Dir(ThisWorkbook.Path & "*.dbf")
'count the files
Do Until sFiles = ""
x = x + 1
sFiles = Dir
Loop

strDocPath = "C:\Users\fg733136\Documents\Projet Horaire PCC\03SABRAQUE corrigé\03SABRAQUE corrigé\"
'strCurrentFile = Dir(strDocPath & "*.*")
strCurrentFile = Dir(strDocPath & "*.dbf")

Do While strCurrentFile <> ""
y = y + 1
'display current status on status bar
Application.StatusBar = "Conversion " & y & " of " & x

Workbooks.Open Filename:=strDocPath & strCurrentFile
Fname = Left$(strCurrentFile, Len(strCurrentFile) - 4) & ".csv"
ActiveWorkbook.SaveAs Filename:=strDocPath & Fname, FileFormat:=6, CreateBackup:=False, local:=True

strCurrentFile = Dir
Loop
Application.StatusBar = False 'release the status bar back to excel
Application.ScreenUpdating = False
End Sub

Le souci c'est que la conversion est faite mais j'ai l'impression qu'il ne prend pas en compte les caractères spéciaux et de plus les données sont toutes dans une seule cellule.
J'aimerais donc savoir comment mieux les classer lors de la conversion.
Merci d'avance pour vos réponses !

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

mettez cette ligne en commentaire
'Application.ScreenUpdating = True
mettez un point d'arret a cette ligne
Fname = Left$(strCurrentFile, Len(strCurrentFile) - 4) & ".csv"

lancez votre macro et des l'arret regardez a quoi ressemble le fichier dbf ouvert par excel

pas en compte les caractères spéciaux ????????
0
VBA_93
 
Bonjour f894009,
Merci pour la réponse alors j'ai fais ce que tu m'as expliqué et le résultat reste le même, ce que je voulais par caractère spéciaux c'est qu'il me mets certains caractères qu'on utilise pas d'habitude.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > VBA_93
 
Re,

caractères qu'on utilise pas d'habitude.
Reste a savoir s'ils font parti des donnees ou pas.

Je n'ai pas de fichiers DBF, mais pouvez-vous en mettre un a dispo pour voir le separateur de champ (normalement c'est une tabulation, mais faut voir) et ces fameux caracteres speciaux
0
VBA_93
 
Je peux pas en mettre à disposition mais par exemple voila ce qui est mélangé avec mes caractères normaux :0Jèy 0ˆs c'est juste un exemple. Mais par rapport aux données il existerait pas un moyen de mieux les classer pendant la conversion?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > VBA_93
 
Re,

Ouvrez un DBF avec NotePad ou mieux NotePad++ et regardez comment ca s'affiche
Si vous aviez un outil genre HxD qui permet de voir les fichiers en deux parties, une en Hexadecimal et l'autre ce qui en texte vous pourriez determiner le separateur de champ de facon a pouvoir faire une conversion de donnees via excel (repartition en fonction d'un separateur au choix, voir menu, donnees, convertir) en VBA
0
VBA_93
 
Re,
Je l'ai ouvert avec Notepad++ vu que j'ai que sa pour le moment et je vois qu'il y a de % des accent mélangés avec le nom des champs et des NUL EXT EOT RS écrit en blanc sur fond noir . Je sais pas si sa peut aider.
0