Regrouper pls classeurs en un seul

Résolu
Mistral_13200 Messages postés 649 Statut Membre -  
Mistral_13200 Messages postés 649 Statut Membre -
Bonjour,

J'ai 30 classeurs *.csv d'un seul onglet chacun comportant 3 colonnes.
Je souhaiterais regrouper tous ces classeurs en un seul avec les 30 onglets dans un classeur appelé synthese.xlsx.

Pouvez-vous m'aider.
D'avance merci.
Mistral

7 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    manuellement: menu donnees, donnees externes, fichier txt
    0
  2. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Merci pour ta réponse mais ce n'est pas ce que je demande.
    J'ai 30 classeurs *.csv d'un onglet chacun avec les colonnes A, B et C utilisées.
    Je voudrais regrouper ces 30 classeur dans un seul classeur (donc 30 onglets) qui s'appellera Synthèse.xlsx.
    Je travail avec Excel 2010.
    Merci d'avance pour votre aide
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Merci pour ta réponse mais ce n'est pas ce que je demande. Ben si, a faire 30 fois, vu que vous ne dites pas si cela doit etre automatique ou manuel
    0
  4. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Effectivement!
    Je me suis mal exprimé et je te présente toutes mes excuses.
    Je souhaite effectivement une solution automatique, car c'est une tâche que je dois faire tous les mois.
    Si tu as une solution je suis preneur.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    je te présente toutes mes excuses. Y a pas de lezard

    Ces fichiers sont au meme endroit (chemin et repertoire) ??
    Les fichier du mois remplacent les fichiers du mois precedent avec mise a jour je suppose !!
    0
  7. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Oui les fichiers csv sont tous dans un même répertoire et j'ai un répertoire par mois.
    Je souhaite donc avoir un classeur de synthèse par mois.
    A la fin de mois je crée un nouveau classeur dans lequel je colle la macro pour regrouper tous les classeur csv.
    0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    exemple de code qui cree un classeur, adaptez le disque et le chemin

    Sub Import_CSV()
        'disque
        ChDrive "D"
        'repertoire fonction du mois
        'pourrait etre une inputbox si besoin de choisir le mois
        ChDir "D:\_ACSV\" & Format(Date, "mmmm") & "\"
        'fichier existe
        Nom_Fichier = Dir("*.CSV")
        If Nom_Fichier <> "" Then   'fichier ok
            'nouveau classeur
            Workbooks.Add
            Do While Nom_Fichier <> ""
                'nouvel onglet
                ActiveWorkbook.Worksheets.Add
                'import fichier cvs
                With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Nom_Fichier, Destination:=Range("$A$1"))
                    '.CommandType = 0
                    '.Name = Nom_Fichier     ' voir pour le nom de l'onglet
                    .FieldNames = True
                    .RowNumbers = False
                    .FillAdjacentFormulas = False
                    .PreserveFormatting = True
                    .RefreshOnFileOpen = False
                    .RefreshStyle = xlInsertDeleteCells
                    .SavePassword = False
                    .SaveData = True
                    .AdjustColumnWidth = True
                    .RefreshPeriod = 0
                    .TextFilePromptOnRefresh = False
                    .TextFilePlatform = 1252
                    .TextFileStartRow = 1
                    .TextFileParseType = xlDelimited
                    .TextFileTextQualifier = xlTextQualifierDoubleQuote
                    .TextFileConsecutiveDelimiter = False
                    .TextFileTabDelimiter = True
                    .TextFileSemicolonDelimiter = True
                    .TextFileCommaDelimiter = False
                    .TextFileSpaceDelimiter = False
                    .TextFileColumnDataTypes = Array(1, 1, 1)
                    .TextFileTrailingMinusNumbers = True
                    .Refresh BackgroundQuery:=False
                End With
                'renomme l'onglet
                ActiveSheet.Name = Nom_Fichier     ' voir pour le nom de l'onglet
                Nom_Fichier = Dir
            Loop
            'voir pour le repertoire de sauvegarde
            ActiveWorkbook.SaveAs Filename:="Synthese_" & Format(Date, "mmmm") & ".xlsx"
            ActiveWorkbook.Close False
        Else
            MsgBox "Attention, pas de fichier ou repertoire !!!!!!"
        End If
    End Sub
    0
    1. Mistral_13200 Messages postés 649 Statut Membre 4
       
      Bonjour,

      Merci à toi pour ton aide.
      Cordialement
      Mistral
      0