Conversion CSV à Excel par VBA

  • Initiateur de la discussion Initiateur de la discussion Bryan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bryan

Guest
Bonjour à tous,

Je dois ouvrir un fichier format .csv (séparateur=";") copier ses valeurs et le coller dans un fichier format .xl. Lorsque j'ouvre mon fichier .csv directement par Excel, je n'ai pas de problèmes. Lorsque je veux faire la même chose par VBA, les données se ramassent dans une colonne car le programme ne tient pas compte des séparateurs ";". Quelqu'un peut m'aider?

Merci à l'Avance

Bryan
 
Bonjour à tous,

Suite à mon premier message, voici le code que j'utilise pour ouvrir mon fichier:

Sub nom()

...

Workbooks.Open Filename:= _"Nomdufichier.csv", format:=4

...

End sub

Je sais que le format =4 est pour indiquer que le séparateur est ";", mais pourquoi le fichier CSV s'ouvre sans le considérer reste un mystère. Ma patience commence à être mise à l'épreuve...

Bonne journée

Bryan
 
Bonjour à tous,

Suite à mon premier message, voici le code que j'utilise pour ouvrir mon fichier:

Sub nom()

...

Workbooks.Open Filename:= _"Nomdufichier.csv", format:=4

...

End sub

Je sais que le format =4 est pour indiquer que le séparateur est ";", mais pourquoi le fichier CSV s'ouvre sans le considérer reste un mystère. Ma patience commence à être mise à l'épreuve...

Bonne journée

Bryan
 
Salut Bryan,

Effectivement il y a un petit problème : l'ouverture d'un CSV délimité par des points-virgules ne pose pas de problème en direct mais ne se fait pas correctement avec une macro VBA.
Explication probable : Excel a été francisé, pas VBA. Pour VBA, un fichier CSV est impérativement délimité par des virgules !
Une parade toute simple : renommer les fichiers .CSV en .TXT et ça marche.

Par exemple :
Workbooks.Open "D:\hc\Excel\Liste.txt", Format:=4

Etonnant non ?

A+
Horatio
 
Re : Conversion CSV à Excel par VBA

Bonjour Vekmort

il y a pas mal de temps, je me suis penché sur les fichiers CSV.
et j'ai réalisé ce petit programme.
A mettre dans un module normal.

code
Code:
Sub Ranger_Colonne() 'Traitement fichier au format CSV (point virgule)
Dim Text As String, X As String, ADéconcaténer As String, Caractere As String
Dim M As Integer, Y As Integer, j As Integer, Nb As Integer

M = Sheets("Feuil1").Range("b65536").End(xlUp).Row
Sheets("Feuil1").Activate
Caractere = ";" 'caractère de séparation

'----------- Compteur point virgule ---------------
For Y = 4 To M
    ADéconcaténer = Range("b" & Y).Value
    Nb = Len(ADéconcaténer)
    j = 0
    Text = ""
    For i = 1 To Nb 'traitement caractère par caractère
        X = Mid(ADéconcaténer, i, 1)
        Text = Text & X
        If X = Caractere Then
            j = j + 1
            Text = Left(Text, Len(Text) - 1)
            Range("A" & Y).Select
            Range("A" & Y).Offset(0, j).Value = Text 'si j-1 colonne A départ
            Text = ""
        End If
    Next
Next
End Sub

code à adapter, le code de séparation est le ";" et peut-être changé suivant
le cas.

Bon courage

Jean-Paul
 
Re : Conversion CSV à Excel par VBA

Salut, quel déterrage

Depuis XL 2002, l'export en CSV via VBA prend par défaut pour séparateur une ","
sauf si on le fait à la main : Fichier Enregistrer sous CSV (séparateur point-virgule)

Vérifier dans les Options Régionales | Personnaliser si le séparateur de listes est bien un point-virgule.

L'aide en ligne sur SaveAs est suffisamment explicite :
Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).

de même pour OpenText sur option Local :
Spécifiez True si les paramètres régionaux de l'ordinateur doivent être utilisés pour la mise en forme des séparateurs, des nombres et des données.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
Retour