récupérer certains champs d'un .csv

récupérer certains champs d'un .csv - VB/VBA/VBS - Programmation

Marsh Posté le 16-07-2007 à 15:02:50    

Bonjour
 
Je n'ai jamais programmé en VBx mais la j'ai besoin de créer un script d'extraction de données de plusieurs fichiers csv (le nombre peut varier). Je pense que VBA est le langage le plus adapté pour ca mais j'aurais besoin d'un petit tuto. Si quelqu'un a une adresse avec un exemple d'acces a un csv par exemple??
Est-ce que VBA permet de parcourir plusieurs fichiers différents, ou est-ce qu'il faut un autre langage de script pour "sortir" du fichier excel courant et passer au suivant?
 
Deuxieme question, il faut que le resultat soit sous forme d'executable, et pas de macro intégrée au fichier. C'est faisable?
 
Désolé pour le noobisme  :pt1cable:  
 
Merci pour toute aide


Message édité par 440LVB le 16-07-2007 à 15:05:16
Reply

Marsh Posté le 16-07-2007 à 15:02:50   

Reply

Marsh Posté le 16-07-2007 à 15:21:10    

pour csv tu tapes dans google,
pour l'exécutable, je conseille de faire ca en vb.net ou vb6, mais vba ce sont des mmacros...

Reply

Marsh Posté le 16-07-2007 à 15:22:40    

Si solution VBA
En adaptant http://forum.hardware.fr/hfr/Progr [...] m#t1570350
ou sinon en adaptant qqch comme
 


Option Explicit
 
Sub Csv()
Dim Fichier As Variant
    ChDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv" )
    If Fichier <> False Then
        LireCSV Fichier
    End If
End Sub
 
Private Sub LireCSV(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
 
    Separateur = ";"
    Cells.Clear
    Application.ScreenUpdating = False
    NumFichier = FreeFile
 
    iRow = 0
 
    Open NomFichier For Input As #NumFichier
    Do While Not EOF(NumFichier)
        iCol = 1
        iRow = iRow + 1
        Line Input #NumFichier, Chaine
        Ar = Split(Chaine, Separateur)
        For i = LBound(Ar) To UBound(Ar)
            Cells(iRow, iCol) = Ar(i)
            iCol = iCol + 1
        Next i
    Loop
    Close #NumFichier
    Application.ScreenUpdating = True
 
End Sub


et tu auras le resultat dans une feuille Excel que tu pourras sauver en Texte Tabulé par exemple ou Csv  
Sinon Vb6,Vb.Net etc mais au final tu généreras également un fichier Texte


Message édité par kiki29 le 16-07-2007 à 15:47:42
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed