IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouverture d'un fichier CSV


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 50
    Par défaut Ouverture d'un fichier CSV
    Bonjour,

    Je débute en VBA et je souhaite ouvrir à l'aide de VBA un fichier CSV copier ces données et enregistrer ces données sur un fichier excel.
    Pourriez-vous m'aider sur le code.

    Un grand merci!!!

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, tu peux utiliser l'enregistreur de macros puis optimiser le code manuellement, à moins que tu ne veuilles traiter à la volée le fichier CSV ?

    Une autre approche, affecter un bouton à SelFichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Option Explicit
     
    Sub SelFichier()
    Dim sChemin As String
    Dim sFichier As String, sExt As String
    Dim Pos As Long
     
        sChemin = ThisWorkbook.Path
     
        With Application.FileDialog(msoFileDialogFilePicker)
            .InitialFileName = sChemin & "\"
            .Title = "Sélectionner le fichier CSV"
            .AllowMultiSelect = False
            .ButtonName = "Sélection Fichier"
     
            .Filters.Clear
            .Filters.Add "Texte", "*.csv"
     
            .Show
            If .SelectedItems.Count > 0 Then
                DoEvents
                Application.ScreenUpdating = False
                Feuil1.Cells.Clear
     
                LectureCSV .SelectedItems(1)
     
                Pos = InStrRev(.SelectedItems(1), "\")
                sFichier = Mid$(.SelectedItems(1), Pos + 1)
                Pos = InStrRev(sFichier, ".")
                sFichier = Left$(sFichier, Pos - 1)
     
                Sauvegarde sFichier
     
                With Feuil1
                    .Activate
                    .Range("A1").Select
                End With
                Application.ScreenUpdating = True
            End If
        End With
    End Sub
     
    Private Sub LectureCSV(sFichier As String)
    Dim iRow As Long, iCol As Long
    Dim NumFichier As Integer
    Dim sChaine As String, i As Long
    Dim Separateur As String, Ar() As String
     
        NumFichier = FreeFile
        Separateur = ";"
     
        iRow = 1
        Open sFichier For Input As NumFichier
        Do While Not EOF(NumFichier)
            iCol = 1
            Line Input #NumFichier, sChaine
            Ar = Split(sChaine, Separateur)
            For i = LBound(Ar) To UBound(Ar)
                Feuil1.Cells(iRow, iCol) = Ar(i)
                iCol = iCol + 1
            Next i
            iRow = iRow + 1
        Loop
        Close NumFichier
    End Sub
     
    Private Sub Sauvegarde(sNomFichier As String)
    Dim sNom As String, Wkb As Workbook
        sNom = ThisWorkbook.Path & "\" & sNomFichier & ".xls"
        Application.DisplayAlerts = False
     
        Feuil1.UsedRange.Copy
        Set Wkb = Workbooks.Add
     
        With Wkb
            With .ActiveSheet
                .Paste
                .Range("A1").Select
            End With
            .SaveAs Filename:=sNom, FileFormat:=xlNormal
            .Close
        End With
     
        Application.DisplayAlerts = True
    End Sub
    A lire http://excel.developpez.com/faq/?page=ChapFichiersTxt

Discussions similaires

  1. Problème d'ouverture d'un fichier csv
    Par juzii dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2009, 17h32
  2. Réponses: 11
    Dernier message: 27/10/2008, 09h15
  3. macro à l'ouverture d'un fichier ".csv"
    Par Tibaldus dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/09/2007, 11h36
  4. Ouverture d'un fichiers csv
    Par coolest dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/05/2007, 12h32
  5. [Macro] ouverture d'un fichier csv par macro différent du double-clic
    Par Caro-Line dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/04/2007, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo