Macro : Regroupement, synthèse et analyse de données

Moulinois

XLDnaute Occasionnel
Bonsoir,

J'ai dans un dossier un ensemble de classeurs (46189, 46190, 46199, 72115 etc etc) composés d'une seule feuille nommée comme eux.
Ce nombre de classeurs est malheureusement variable.

Je voudrais une macro qui permette d'obtenir le fichier Récap avec un onglet par machine (soit en copie brute des onglets soit en copie avec liaison) ET LES DEUX ONGLETS Recap et Graph qui synthétisent les données, en chiffres et en graphiques.

J'ai mis quelques infos supplémentaires dans Recap.xls (il a 4 onglets alors que je n'ai que deux 46xxx.xls dans le zip, pour gagner de la place).


Merci de m'aider.

A plus :)
 

Pièces jointes

  • Exemple 250.zip
    25.8 KB · Affichages: 59

Moulinois

XLDnaute Occasionnel
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour,

Je crois que je n'ai pas réussi à motiver grand monde :(
Peut-être peut-on faire les choses par étapes, en commençant par la copie des onglets de tous les classeurs du dossier vers celui de la macro qui servira à synthétiser.

J'ai une piste grâce à un code donné par BOISGONTIER et Staple1600 pour changer le nom de l'onglet des classeurs. Je l'ai modifié et je me demandais si ça pouvait marcher.

/!\ CE CODE EST FAUX mais je ne sais pas à quel point :D
Code:
  repertoire = ThisWorkbook.Path & "\"
  fich = Dir(repertoire & "*.xls")
  Do While fich <> ""
    If fich <> ThisWorkbook.Name Then
      Workbooks.Open (repertoire & fich)
      Sheets(1).Select
      Sheets(1).Copy after:=Recap.Sheets(NbSheet(Recap))
      ActiveWorkbook.Close True
    End If
    fich = Dir
  Loop

Merci pour votre aide.
A plus.
 

jp14

XLDnaute Barbatruc
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour

Ci joint un fichier avec une macro pour recopier les données dans le fichier recap

A tester

JP
 

Pièces jointes

  • Recap.zip
    29.3 KB · Affichages: 59
  • Recap.zip
    29.3 KB · Affichages: 62
  • Recap.zip
    29.3 KB · Affichages: 65

Moulinois

XLDnaute Occasionnel
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour jp14,


J'ai un bug ligne 78. Je ne comprends pas à quoi sert le "£" :D
....mais ça marche déjà pas mal du tout.

Faudra juste que tu m'expliques comment marche l'architecture entre le userform et les macros ;)


Merci,

A plus
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Macro : Regroupement, synthèse et analyse de données

Bonsoir

Je n'ai pas d'erreur.


JP
 

Pièces jointes

  • Recap.zip
    24.2 KB · Affichages: 60
  • Recap.zip
    24.2 KB · Affichages: 54
  • Recap.zip
    24.2 KB · Affichages: 64
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour

Dans cette dernière version j'ai utilisé ta macro pour la copie.
L'USF sert à vérifier si le chemin est correct, dans le cas contraire il permet de choisir le répertoire.

JP
 

Moulinois

XLDnaute Occasionnel
Re : Macro : Regroupement, synthèse et analyse de données

Re,
Dans cette dernière version j'ai utilisé ta macro pour la copie.
Wahou, cool que j'ai eu une idée qui marche :cool:

En revanche, je suis désolé de t'embêter avec la compréhension de ce que tu as fait.
L'USF sert à vérifier si le chemin est correct, dans le cas contraire il permet de choisir le répertoire.
J'ai compris ça.
Mais j'ai pas compris du tout comment tout s'articule (les modules etc, je n'y connais rien) et comment je vais faire pour l'intégrer dans ma grosse macro ensuite :(

Est-ce qu'il est nécessaire de faire appel à des macros/fonctions privées ?
(Je sais que c'est mieux pour la lisibilité mais le code n'aura pas besoin d'être lisible à terme puisqu'il n'aura pas besoin d'être modifié)



N.S.
 

jp14

XLDnaute Barbatruc
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour

Par habitude je décompose au maximum les procédures ce qui permet un réemploi ultérieur et cela facilite la mise au point.
Pour réunir les procédure il suffit de remplacer la ligne avec call par la procédure en faisant attention au niveau des variables


Si tout les fichiers sont dans le même répertoire la macro se résume à
macro à tester
Code:
Sub ChercheetOuvreFichier()
Dim classeur As Workbook
Dim cellule As Range
Dim i As Long
Dim j As Long
Dim classeur1 As String
Dim classeur2 As String
Dim dl1 As Long
dim nomfich As String
dim Chemin As String

Chemin = ThisWorkbook.path & "\"
monfichier = Dir(Chemin & "*.xls")
classeur1 = ActiveWorkbook.Name
Application.DisplayAlerts = False 'interdit les messages d'avertissements
Do Until monfichier = ""

    If monfichier <> classeur1 Then
         'Label3.Caption = Chemin & monfichier
         
         ' ouverture du classeur
         Set classeur = GetObject(Chemin & monfichier)
         classeur2 = classeur.Name

         'Call copiedonnee(classeur1, "Feuil1", classeur2, "")
         Workbooks(classeur2).Sheets(1).Copy after:=Workbooks(classeur1).Sheets(Worksheets.Count)

        ' fermeturefichier (monfichier)
        Workbooks(monfichier).Close False
     End If
         monfichier = Dir ' fichier suivant
   
Loop
Application.DisplayAlerts = True
End Sub
A tester

JP
 

Moulinois

XLDnaute Occasionnel
Re : Macro : Regroupement, synthèse et analyse de données

Bonjour
Par habitude je décompose au maximum les procédures ce qui permet un réemploi ultérieur et cela facilite la mise au point.
Tu as raison.....mais moi je n'y comprends rien pour l'instant :D
Pour réunir les procédure il suffit de remplacer la ligne avec call par la procédure en faisant attention au niveau des variables
J'ai essayé mais je me mélangeais pas mal avec les arguments.
Si tout les fichiers sont dans le même répertoire la macro se résume à [...]
macro à tester
Macro testée. Approuvée :)


Merci bien,
A plus.
 

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86