• Initiateur de la discussion Initiateur de la discussion stephane
  • 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 !

S

stephane

Guest
Bonjour à tous,

voici mon problème je dois ouvrir un fichier csv dans une macro.

Si dans excel je fait fichier ouvrir c'est impeccable j'ai mon fichier bien séparé dans mes cellules.

Si j'utilise la commande
Workbooks.Open Filename:='C:\\har\\coho\\export.csv'

mon fichier s'ouvre avec toutes les données stockées dans la première cellule ( les données sont séparées par un ; ).

Je pense que par défaut excel converti le csv alors que la macro l'ouvre brut.

Merci de votre aide.

Stephane
 
Bonjour Stéphane, le Forum

Si tu vas dans l'ancien Forum XLD :

=> Ce lien n'existe plus

... Et que tu ustilises le Moteur de Recherche de ce Forum là avec les mots clefs 'Ouvrir CSV'...

...Tu devrais trouver ton bonheur...

Bonne Recherche
@+Thierry
 
J'ai effectivement trouvé et je poste la solution :

Sub MiseAjour()
Dim wb As Workbook

With Application
.ScreenUpdating = False
.DisplayAlerts = False

Set wb = .Workbooks.Open('C:\\test.csv')
wb.Sheets(1).Columns(1).TextToColumns Range('A1'), xlTextQualifierDoubleQuote, , False, , , , , True, ';', Array(1, 4)
.ScreenUpdating = True
.DisplayAlerts = False
End With

Workbooks.Open 'C:\\test.xls'
ActiveWorkbook.Save
ActiveWorkbook.Close
ActiveWorkbook.Close
End Sub

Merci à tous.
 
Après avoir eu un moment de joie quelle n'a pas été ma surpise de voir que mon fichier n'était correctement ouvert que sur les premières cellules et vide ensuite.

Avant de m'arracher tous les cheveux je joint mon fichier csv avec des chiffres bidons pour vous montrer mon exemple.

Merci d'avance pour votre aide.
 
Bonjour Stéphane, Pascal

Un peu plus haut tu as écrit :
Avant de m'arracher tous les cheveux je joint mon fichier csv avec des chiffres bidons pour vous
montrer mon exemple.

Mais où est donc ce fichier CSV ?

Attention il faut que tu le zip en respectant des caractères normaux pour le nom de fichier. (et '.ZIP' en miniscule ! si si)

Bon Appétit
@+Thierry
 
Re bonjour Pascal et Thierry

Vu sa taille ( 2k ) je ne l'avais pas zippé.


Donc le voila.

Merci à tous. [file name=export.zip size=971]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/export.zip[/file]
 

Pièces jointes

Bonjour Stéphane, Pascal, le Forum

Petite remarque pour l'utilisation correcte de ce Forum, le Nom d'Utilisateur/Auteur est fait pour indiquer ton Pseudo ou ton Prénom, mais pas 'voila le fichier zippé', ou 'ET BIEN NON !'... Ce n'est pas du tout pratique pour avoir un suivi des échanges avec telle ou telle personne...

Bon sinon, j'ai regardé ton CSV. En fait, ici sur une version américaine de Windows/Office, il y a un souci avec ces lignes :

9999;;MR X;2004;;PPP;GGG;;;93001;;;7,83E+13;
9999;;MR X;2003;;PPP;GGG;;;93001;;;7,83E+13;

Alors que la première passe impeccable...

C'est du à cette virgule :
9999;;MR X;2003;;PPP;GGG;;;93001;;;7,83E+13;

Qui me fait une rupture dans l'import et qui m'envoit un message 'Do you want te replace the contents of destination cells ?'...

A l'époque nous avions discuté de ceci avec Ti :
Re: Ouvrir un fichier csv en VBA
Auteur: Ti (---.w80-12.abo.wanadoo.fr)
Date: 26-01-04 06:30

il n'y a pas de difficulté à ouvrir un csv, mais il y en a par contre à récupérer les données de ceux-ci en fonction de la machine sur laquelle cela est fait. D'une machine à l'autre (je l'ai expérimenté chez moi, entre 2 de mes ordinateurs) les paramètres ne sont pas forcément les mêmes et sur une machine, les '.' seront considérés comme séparateurs décimaux, alors que sur l'autre ce seront les ',' alors que, dans mes paramètres systèmes, il n'y a bien sûr pas de différences. Idem pour les séparateurs de champs qui peuvent être des virgules ou des points-virgules.

En bref, en ce qui me concerne (n'est-ce pas Celeda), j'évite autant que possible les csv pour des programmes prévus pour tourner sur des configurations différentes.

Phénomène que j'ai confirmé et que je confirme encore aujourd'hui...

Pour l'instant je ne vois qu'une lecture en Statement Open de fichier Texte 'TXT3 et non plus une lecture par les automatismes obtenus par une macro enregistrée...

Voici un exemple de Code que je viens de tester sur ton CSV et qui me retourne proprement 118 champs...

Code:
Option Explicit

Sub ImportTXT()
Dim TheRecord As String
Dim TheContainer As Variant
Dim ThePath As String
Dim i As Integer, X As Integer

i = 1

ThePath = 'C:\\Documents and Settings\\Thierry\\My Documents\\Export.csv' ''A ADAPTER !'

Open ThePath For Input As #1

    Do While Not EOF(1)
      Line Input #1, TheRecord

      TheContainer = Split(TheRecord, Chr(59)) 

            With ActiveSheet
            
            For X = 0 To UBound(TheContainer)
            On Error Resume Next
                .Cells(i, X + 1) = TheContainer(X)
            Next X
            End With
        i = i + 1
    Loop

Close #1
End Sub

NB : Excel 97 ne supporte pas la Fonction Split utilisée ici

Bonne Journée
@+Thierry
 
- 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

Réponses
43
Affichages
675
D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Réponses
40
Affichages
3 K
Retour