2015-10-16 1 views
2

Je suis au travail en essayant de résoudre quelques problèmes. J'ai un grand fichier .csv qui a 4 colonnes (prénom, nom, numéro d'identification, sexe) et beaucoup de lignes avec les individus correspondants. Je n'utilise pas VBA mais j'essaie d'écrire une macro qui lit le fichier Excel et place les données dans un fichier txt avec un délimiteur d'espace. J'ai utilisé un tutoriel de site Web et est venu avec le suivant, cependant, il semble si faux.lire un fichier csv dans un fichier texte

Sub test() 

Dim myFile As String 
Dim rng As Range 
Dim cellvalue As Variant 
Dim i As Integer 
Dim j As Integer 

myFile = Application.DefaultFilePath & "\Book1.csv" 

Set rng = Selection 

Open myFile For Output As #1 

For i = 1 To rng.Rows.Count 
For j = 1 To rng.Columns.Count 
    cellvalue = rng.Cells(i, j).Value 

    If j = rng.Columns.Count Then 
     Write #1, cellvalue 
    Else 
     Write #1, cellvalue, 
    End If 

Next j 
Next i 

Close #1 

End Sub 

L'idée était de mettre un bouton de commande dans le fichier Excel, écrire ce code, affecter la macro à la touche, sélectionnez les données en question et cliquez sur le bouton. Si quelqu'un est prêt à aider un nouveau type, l'appréciation sera à vous.

Répondre

2

Ce tutoriel sera ok pour cela: http://www.excel-easy.com/vba/examples/write-data-to-text-file.html

changement Ecrire # 1 pour Imprimer # 1

+0

Merci pour cela. Maintenant question très naïve. Une fois que cela fonctionne, où va-t-il placer le fichier texte. J'obtiens un succès que la macro s'exécute, mais aucune idée où la tuile de texte est placée. – Rivers31334

+0

Il suffit de mettre un point d'arrêt sur cette ligne: Set rng = Sélection, Déplacez le curseur sous "myFile" vous verrez l'emplacement. –

+0

Application.DefaultFilePath: -> Renvoie ou définit le chemin par défaut que Microsoft Excel utilise lorsqu'il ouvre des fichiers. Lire/écrire une chaîne. –