Structurer des données
VBA_93
-
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 !
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
-
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 ????????-
-
-
-
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 -
-