fichier csv

Le
claude
bonjour à tous
quand je double clic sur un fichier csv, (import de ma banque) il s'ouvre
normalement dans excel
si j'utilise l'enregistreur de macros pour ouvrir ce fichier "csv"
il m'indique
workbooks.open Filename:="toto.csv"
quand j'exécute le code, j'obtiens n'importe quoi
(un fichier texte dans le désordre, colonnes mal distribuées)
Bon, je peux toujours faire une suite d'opérations laborieuses pour tout
remettre en ordre

mais je ne comprends pas
si quelqu'un a un début de commencement d'explication
:-)
merci d'avance
claude
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #17931401
Bonjour,
Une piste ou deux pour t'aider, peut être, ici :
http://www.excelabo.net/moteurs/motsclefs.php?mot=csv
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"claude" news:49293951$0$23638$
bonjour à tous
quand je double clic sur un fichier csv, (import de ma banque) il s'ouvre
normalement dans excel
si j'utilise l'enregistreur de macros pour ouvrir ce fichier "csv"
il m'indique
workbooks.open Filename:="toto.csv"
quand j'exécute le code, j'obtiens ... n'importe quoi
(un fichier texte dans le désordre, colonnes mal distribuées)
Bon, je peux toujours faire une suite d'opérations laborieuses pour tout
remettre en ordre

mais je ne comprends pas
si quelqu'un a un début de commencement d'explication
:-)
merci d'avance
claude



claude
Le #17931581
bonjour
merci philippe
juste en ajoutant cela
local:=True
l'ouverture est parfaite
je ne comprends pas vraiment ,mais çà marche
:-))
merci
claude


"Philippe.R"
Bonjour,
Une piste ou deux pour t'aider, peut être, ici :
http://www.excelabo.net/moteurs/motsclefs.php?mot=csv
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"claude" news:49293951$0$23638$
bonjour à tous
quand je double clic sur un fichier csv, (import de ma banque) il s'ouvre
normalement dans excel
si j'utilise l'enregistreur de macros pour ouvrir ce fichier "csv"
il m'indique
workbooks.open Filename:="toto.csv"
quand j'exécute le code, j'obtiens ... n'importe quoi
(un fichier texte dans le désordre, colonnes mal distribuées)
Bon, je peux toujours faire une suite d'opérations laborieuses pour tout
remettre en ordre

mais je ne comprends pas
si quelqu'un a un début de commencement d'explication
:-)
merci d'avance
claude







Philippe.R
Le #17932661
Bonjour,
C'est encore une affaire de paramètres VBA qui sont anglo-saxons par défaut
; l'instruction local:=True permet de revenir sur les paramètres choisis
par l'utilisateur dans Excel
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"claude" news:49294457$0$19029$
bonjour
merci philippe
juste en ajoutant cela
local:=True
l'ouverture est parfaite
je ne comprends pas vraiment ,mais çà marche
:-))
merci
claude


"Philippe.R"
Bonjour,
Une piste ou deux pour t'aider, peut être, ici :
http://www.excelabo.net/moteurs/motsclefs.php?mot=csv
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"claude" news:49293951$0$23638$
bonjour à tous
quand je double clic sur un fichier csv, (import de ma banque) il
s'ouvre normalement dans excel
si j'utilise l'enregistreur de macros pour ouvrir ce fichier "csv"
il m'indique
workbooks.open Filename:="toto.csv"
quand j'exécute le code, j'obtiens ... n'importe quoi
(un fichier texte dans le désordre, colonnes mal distribuées)
Bon, je peux toujours faire une suite d'opérations laborieuses pour tout
remettre en ordre

mais je ne comprends pas
si quelqu'un a un début de commencement d'explication
:-)
merci d'avance
claude











michdenis
Le #17932931
Le paramètre Local:=True existe depuis excel 2002.
si tu exécutes ta macro avec une version antérieure
ta procédure va se planter.

Raison : L'interface de l'éditeur de code (VBA) utilise
par défaut, la configuration AMERICAINE des options
du panneau de configuration version américaine.

En conséquence, lorsque tu ouvres un fichier à l'aide
d'une ligne de code VBA comme Workbooks.open ....
le fichier .csv est présumé utilisé la virgule comme séparateur.

Lorsque tu utilises la commande "Ouvrir" de la commande "Fichier"
Excel tient compte des paramètres régionales définis dans le panneau
de configuration de ton PC.

Une autre alternative serait d'aller dans ton panneau de configuration
et définir "tous" les paramètres régionales à l'américaine...et tu n'aurais
plus à tenir compte de cela.... sauf si tu ouvres ton fichier sur une autre
machine...

Une dernière alternative qui est bonne pour toutes les versions d'excel :
'------------------------------
Sub Exemple() 'procédure à exécuter
Dim Fichier As String
'Définis le chemin et le nom de ton fichier
Fichier = "c:ExcelDenis.csv"
OuvrirFichier Fichier
End Sub
'------------------------------
Sub OuvrirFichier(NomFichier As String)
Dim Wk As Workbook
Set Wk = Workbooks.Open(NomFichier)
Wk.Sheets(1).Columns(1).TextToColumns _
Range("A1"), , , False, , True, , _
DecimalSeparator:="."
Set Wk = Nothing
End Sub
'------------------------------

Une autre procédure pour importer un fichier texte et choisir où
tu veux insérer tes données dans ton classeur actif :

La fonction "Split" de cette procédure requiert excel 2000 ou plus récent.
'-------------------------------------------------
Sub ImporterFichiersTextes()

Dim A As Integer
Dim T As Variant, Nom As String
Dim Chemin As String, Sep As String
Dim WholeLine As String, FName As String

Application.ScreenUpdating = False

'Chemin où est le fichier
Chemin = "C:Excel"

'Nom du fichier à importer
Nom = "Denis.csv"

'Séparateur du fichier texte à définir
Sep = ";"

'Nom de la feuille de calcul où
'tu veux importer les données
With Worksheets("Feuil2")
If .Range("A1") = "" Then
A = 1
Else
A = .Range("A65536").End(xlUp)(2).Row
End If
FName = Chemin & Nom
Open FName For Input Access Read As #1
While Not EOF(1)
Line Input #1, WholeLine
T = Split(WholeLine, Sep)
.Range("A" & A).Resize(, UBound(T) + 1) = T
A = A + 1
Wend
Close #1
End With
End Sub
'-------------------------------------------------
Publicité
Poster une réponse
Anonyme