help : super débutante macro : mettre bout à bout des données excel

dopdop

XLDnaute Nouveau
Bonjour,
Je ne suis pas informaticienne mais assistante de direction et du coup, quand on me parle de macro, c'est comme me parler en chinois (ou presque !) :p

J'ai plusieurs fichier excel
qui contiennent tous une seule feuille

pour situer, ce sont des releves quotidien d'heure d'arrivee et depart de chauffeurs.

on me demande une analyse sur une année !!!

autant dire que ça va me prendre des plombes si je dois faire des copiers coller de 365 feuilles.

Idéalement, j'aurai besoin :
- de tout mettre bout a bout dans une seule fichier
- si ce n'est pas possible, au mois d'avoir toute les feuilles dans une seul fichier

j'ai trouvé une macro qui si j'ai bien compris fait ça mais je ne sais pas m'en servir (ou cliquer ???? que faire ????)

Pour mieux comprendre, en pièce jointe les fichiers.

merci beaucoup à tous vous pour votre aide :)
 

Pièces jointes

  • z_2014_01_lesis_Recapitulatif_journalier_201401 (31).zip
    31.9 KB · Affichages: 41

dopdop

XLDnaute Nouveau
Re : help : super débutante macro : mettre bout à bout des données excel

oups, la macro en question c'est ça

Consolide tous les classeurs d'un répertoire

Sub consolide()
ChDir ActiveWorkbook.Path
Set classeurMaitre = ActiveWorkbook
sup
compteur = 1
nf = Dir("*.xls")
Do While nf <> ""
If nf <> classeurMaitre.Name Then
Workbooks.Open Filename:=nf
For k = 1 To Sheets.Count
Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Mapage" & compteur
compteur = compteur + 1
Next k
Workbooks(nf).Close False
End If
nf = Dir
Loop
End Sub

Sub sup()
Application.DisplayAlerts = False
If Sheets.Count > 1 Then
Sheets("Accueil").Move before:=Sheets(1)
Sheets(2).Select
For i = 2 To Sheets.Count
ActiveSheet.Delete
Next i
End If
End Sub
 

Modeste

XLDnaute Barbatruc
Re : help : super débutante macro : mettre bout à bout des données excel

Bonjour dopdop et bienvenue,

Pas certain que la macro que tu as trouvée fasse vraiment ce que tu avais imaginé!? (tes fichiers sont des .csv et pas des .xls et il ne faut pas copier toutes les feuilles de chaque classeur dans ton récapitulatif ... en tout cas, si j'ai bien compris!!??)

Enregistre le classeur joint au même emplacement que quelques uns de tes fichiers ... Je dis quelques uns parce qu'il vaudrait mieux ne pas tester avec tes 365 fichiers du premier coup! D'abord 2, puis -si tout va bien- un vingtaine devrait permettre de déterminer si ça fonctionne!

Une fois le classeur enregistré, ouvre-le et appuie sur Alt+F11 ... te voilà informaticienne (enfin presque! ;)). Vérifie que le code est bien visible à droite (si pas, double-clique sur le Module1 à gauche). Place le curseur n'importe où dans le code et appuie sur F8; chaque appui sur la touche va exécuter une instruction.
Cela te permettra de vérifier si aucune erreur ne se produit. si tu arrives sans erreur à la ligne "Loop", c'est que l'enfant se présente bien ... appuie alors sur F5 (toute la macro va s'exécuter) ... compte jusqu'à 3941 en fermant les yeux et en croisant les doigts!

Je n'ai pu tester qu'en Excel 2013. Pas d'autre version sous la main!
 

Pièces jointes

  • Récapitulatif.xls
    37 KB · Affichages: 37
  • Récapitulatif.xls
    37 KB · Affichages: 40
  • Récapitulatif.xls
    37 KB · Affichages: 42

dopdop

XLDnaute Nouveau
Re : help : super débutante macro : mettre bout à bout des données excel

Chef, chef ! y'a un couac !

Capture.jpg
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    42.8 KB · Affichages: 72
  • Capture.jpg
    Capture.jpg
    42.8 KB · Affichages: 70

MichD

XLDnaute Impliqué
Re : help : super débutante macro : mettre bout à bout des données excel

Bonjour,

Tu ouvres le fichier et tu cliques sur le bouton de commande. Une fenêtre te demandera où sont lesdits fichiers .csv à importer et fera le boulot. J'ai supposé que ces fichiers étaient de la même structure et que le séparateur d'éléments était le point-virgule.
 

Pièces jointes

  • ADO_Importer plusieurs Fichiers_CSV_Publié.xlsm
    26.7 KB · Affichages: 35

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : help : super débutante macro : mettre bout à bout des données excel

Bonsoir,


On suppose que:
-le fichier ci joint est dans un répertoire xxxx
-tous les fichiers à consolider sont dans un sous-répertoire de xxxx nommé mesfichiers.

Met tous les fichiers dans la même BD
Code:
Sub syntèseClasseursBD2()
  Application.ScreenUpdating = False
  sousRépertoire = "mesfichiers"    ' A adapter
  [A2].CurrentRegion.Offset(1, 0).Clear
  Set maitre = ActiveWorkbook
  Repertoire = ThisWorkbook.Path
  nf = Dir(Repertoire & "\" & sousRépertoire & "\*.csv") ' premier fichier
  Do While nf <> ""
    Workbooks.Open Filename:=Repertoire & "\" & sousRépertoire & "\" & nf
    Range("a2:A1000").TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True
    
    n = [A1].CurrentRegion.Rows.Count - 2
    [A1].CurrentRegion.Offset(2, 0).Copy _
    maitre.Sheets(1).[A65000].End(xlUp).Offset(1, 0)
    ActiveWorkbook.Close False
    '-- nom onglet
    [O65000].End(xlUp).Offset(1).Resize(n, 1) = Left(nf, Len(nf) - 4)
    nf = Dir ' fichier suivant
  Loop
End Sub

Importe chaque fichier dans une feuille

Code:
Sub consolide()
  Application.ScreenUpdating = False
  sousRépertoire = "mesfichiers"    ' A adapter
  Set maitre = ActiveWorkbook
  Repertoire = ThisWorkbook.Path
  Set classeurMaitre = ActiveWorkbook
  sup
  compteur = 1
  nf = Dir(Repertoire & "\" & sousRépertoire & "\*.csv") ' premier fichier
  Do While nf <> ""
    If nf <> classeurMaitre.Name Then
      Workbooks.Open Filename:=Repertoire & "\" & sousRépertoire & "\" & nf
      Range("a2:A1000").TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True
      
      For k = 1 To Sheets.Count
        Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
        classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Page" & compteur
        compteur = compteur + 1
      Next k
      Workbooks(nf).Close False
    End If
    nf = Dir
  Loop
  Sheets(1).Select
End Sub

Sub sup()
  Application.DisplayAlerts = False
  If Sheets.Count > 1 Then
    Sheets("Accueil").Move before:=Sheets(1)
    Sheets(2).Select
    For i = 2 To Sheets.Count
      ActiveSheet.Delete
    Next i
  End If
End Sub
JB
 

Pièces jointes

  • Consolide.xls
    145.5 KB · Affichages: 39
  • ConsolideFeuilles.xls
    220.5 KB · Affichages: 38
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 529
dernier inscrit
moket07