Récupérer données fichiers csv et les copier dans un fichier.xls

Fermé
lartiste_973 Messages postés 7 Date d'inscription dimanche 10 avril 2016 Statut Membre Dernière intervention 1 juin 2016 - 10 avril 2016 à 20:41
lartiste_973 Messages postés 7 Date d'inscription dimanche 10 avril 2016 Statut Membre Dernière intervention 1 juin 2016 - 10 avril 2016 à 21:48
Bonjour,
je vous explique ma problématique:
je reçois tous les jours des fichiers au format : .csv (stockés dans le même dossier) que je dois intégrer dans une feuille d'un autre fichier excel. (Cette feuille correspond à une base de données géante que je souhaiterais alimenter à partir des données de mes fichiers .csv).
J'ai pas mal parcouru les topics et solutions déjà proposés sur ce forum, testé, re-testé mais malheureusement sans succès.
Je cherche à automatiser les actions suivantes pour éviter des copier/coller longs et répétitifs et source d'erreur.
Actions :
1- Ouvrir mon fichier contenant ma feuille Base_de_données
2- En cliquant sur un bouton "Mise à jour", copier les données des nouveaux fichier .csv dans ma feuille "Base_de_données" à la suite des dernières lignes déja présentes.
3- Mettre en forme les données importées grâce au séparateur de virgules.
En espérant que mes explications aient été suffisament claire.
Merci d'avance pour votre aide et vos précieux conseils

1 réponse

Bonsoir
voila une macro pour le cumul des CSV
Sub Choix()
Dim Dossier As FileDialog
ChoixChemin = ActiveWorkbook.Path & Application.PathSeparator
   Set Dossier = Application.FileDialog(msoFileDialogFilePicker)
      With Dossier
         .AllowMultiSelect = False
         .InitialFileName = ChoixChemin
         .Title = "Choix d'un fichier Elise"
         .Filters.Clear
         .Filters.Add "Fichier Csv ", "*.csv*", 1
            If .Show = -1 Then
               Chemin = .SelectedItems(1)
               Lire Chemin
            End If
      End With
   Set Dossier = Nothing
End Sub

Sub Lire(NomFichier)
Dim Ar() As String
'Feuil1.Select
'Cells.Select
'Selection.Clear
Sep = ","
Lig = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Open NomFichier For Input As #1
        Do While Not EOF(1)
            Line Input #1, Chaine
               Ar = Split(Chaine, Sep)
               Col = 1
                  For X = LBound(Ar) To UBound(Ar)
                     Cells(Lig, Col) = Ar(X)
                     Col = Col + 1
                  Next
            Lig = Lig + 1
        Loop
    Close #1
Application.Goto [A1], True
End Sub

A+
Maurice
0
lartiste_973 Messages postés 7 Date d'inscription dimanche 10 avril 2016 Statut Membre Dernière intervention 1 juin 2016
10 avril 2016 à 21:48
Bonsoir Maurice,
Un grand merci pour ta réactivité et ta solution. Par contre n'étant pas un expert VBA, je n'arrive pas à comprendre toute les étapes de cette macro. Peux-tu m'aider ? :(

Lartiste_973
0