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 !
A voir également:
- Structurer des données
- Fuite données maif - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
- Excel validation des données liste - Guide
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 ????????
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 ????????
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.
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
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
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.