Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) pb tabulations avec fichiers *.csv

2 réponses
Avatar
j-pascal
Bonjour,

Je récupère des fichiers *.csv sur plusieurs PC.
Certains s'affichent "spontanément" de façon tabuluée (une rubrique dans
chaque colonne ...).
Je sais qu'il y a des réglages à faire dans Excel, mais dans le cas présent,
je ne sais pas sur quel PC ces fichiers vont être ouverts.

Question : comment peut-on convertir un fichier *.csv en *.xls en vba ?

NB : l'utilisateur ne doit pas se préoccuper de savoir si le fichier qu'il
récupère est csv ou xls :
Un bout du code, ci-après (all rights reserved for Daniel ;-) ) :


'---------------------------------------------------
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:\Documents and Settings\jean-pascal\Bureau" 'adapter

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " & nomFichier
& Chr(10) & Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

Workbooks.Open nomFichier
'-----------------------------------------------------------

--
Cordialement @+
JP

2 réponses

Avatar
Daniel
Bonjour.
Qu'est-ce qui cloche dans ce code ? Si c'est l'ouverture des fichiers csv,
tu peux tester le type de fichier pour utiliser workbooks.opentext.
(les séparateurs points-virgules et tabulations sont pris en compte dans
l'exemple suivant) :

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True, local:=True
End If

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonjour,

Je récupère des fichiers *.csv sur plusieurs PC.
Certains s'affichent "spontanément" de façon tabuluée (une rubrique dans
chaque colonne ...).
Je sais qu'il y a des réglages à faire dans Excel, mais dans le cas
présent, je ne sais pas sur quel PC ces fichiers vont être ouverts.

Question : comment peut-on convertir un fichier *.csv en *.xls en vba ?

NB : l'utilisateur ne doit pas se préoccuper de savoir si le fichier qu'il
récupère est csv ou xls :
Un bout du code, ci-après (all rights reserved for Daniel ;-) ) :


'---------------------------------------------------
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau" 'adapter

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier & Chr(10) & Chr(10) & "Confirmez-vous ce choix ?", vbYesNo +
vbQuestion, "validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

Workbooks.Open nomFichier
'-----------------------------------------------------------

--
Cordialement @+
JP


Avatar
j-pascal
Re,

Ce bout de code pour gérer les tabulations est PARFAIT !
Merci beauuucooop :o)

(encore du code dont je vais me servir souvent !)

JP

Qu'est-ce qui cloche dans ce code ? Si c'est l'ouverture des fichiers csv,
tu peux tester le type de fichier pour utiliser workbooks.opentext.
(les séparateurs points-virgules et tabulations sont pris en compte dans
l'exemple suivant) :

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True, local:=True
End If

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonjour,

Je récupère des fichiers *.csv sur plusieurs PC.
Certains s'affichent "spontanément" de façon tabuluée (une rubrique dans
chaque colonne ...).
Je sais qu'il y a des réglages à faire dans Excel, mais dans le cas
présent, je ne sais pas sur quel PC ces fichiers vont être ouverts.

Question : comment peut-on convertir un fichier *.csv en *.xls en vba ?

NB : l'utilisateur ne doit pas se préoccuper de savoir si le fichier
qu'il récupère est csv ou xls :
Un bout du code, ci-après (all rights reserved for Daniel ;-) ) :


'---------------------------------------------------
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and Settingsjean-pascalBureau" 'adapter

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier & Chr(10) & Chr(10) & "Confirmez-vous ce choix ?", vbYesNo +
vbQuestion, "validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

Workbooks.Open nomFichier
'-----------------------------------------------------------

--
Cordialement @+
JP