Macro qui permet de regrouper dans une synthèse

Bonjour

Je me permets de solliciter à nouveau votre aide pour la construction d'une macro. A vrai dire, je ne sais pas vraiment comment m'y prendre.

Je vous explique : j'ai une grosse quantité de fichiers et j'aimerai regrouper les informations dans un seul. Pour cela, j'aimerai borner entre 2 dates et cliquer sur un bouton qui va rechercher les info dans les fichiers entre ces 2 dates. Pour être un peu plus clair, je vous joint 3 fichiers (ce sont vraiment que des exemples, en réalité j'en ai plus d'une centaine). Le fichier suivi1 qui a certaines info dans des colonnes spécifiques, suivi2 qui en a d'autres et enfin le fichier synthèse qui regrouperait les info communes aux 2 fichiers.

Je suis désolé si mes compétences sont à la limite du 0, mais si je pouvais comprendre la macro pour ces 3 fichiers, peut-être je pourrai la refaire pour tous.

Merci à vous pour votre aide

Cordialement

S.

30suivi1.xlsx (9.88 Ko)
27suivi2.xlsx (8.59 Ko)
23synthese.xlsx (12.82 Ko)

Bonjour,

un fichier synthèse vide est inutile ‼

En joindre un comme attendu vis à vis des fichiers de suivi …

Bonsoir

Je vous prie de m'excuser, voici le tableau synthèse avec les données telles que j'aimerai qu'elles apparaissent une fois que la date est bornée.

Merci pour votre aide

39synthese.xlsx (14.31 Ko)
24suivi2.xlsx (8.75 Ko)
26suivi1.xlsx (10.02 Ko)

L'idéal serait les colonnes des fichiers de suivi dans le même ordre de celui du fichier de synthèse

ou encore avec des titres de colonnes strictement identiques; sinon sans uniformisation …

Bonjour

Je sais que l'idéal serait l'uniformisation, malheureusement je ne peux pas. J'ai une centaine de fichiers que je dois regrouper, et à chaque fois, j'aurai certaines colonnes qui seraient le dénominateur commun. Pour cette raison, j'aimerai déjà voir comment structurer une macro ou autres sur 2 fichiers et voir pour ensuite l'appliquer sur les fichiers qui me restent à faire.

Merci pour votre réponse

Sans uniformisation des colonnes soit dans l'ordre soit avec des titres identiques, comment regrouper ?‼ …

« certaines colonnes » : oui, mais lesquelles ?

Le dénominateur commun serait :

la date

le fournisseur

le N° de commande

la référence

Quantité

Camion

dans le fichier suivi2 par exemple, il n'y a pas de colonne Camion, et de ce fait, dans la synthèse, il n'y aura pas de données à l'intérieur des cellules.

Merci pour votre aide

En l'état actuel, dans le fichier Suivi1 seules les colonnes date, fournisseur et référence sont récupérables

par comparaison avec les titres des colonnes du fichier Synthèse !

Comment regrouper les autres ? …

Pour faciliter la chose, j'ai revu le fichier suivi2, pour pouvoir avancer et surtout comprendre comment on va pouvoir créer cette synthèse. Je vous le joins.

Merci à vous pour votre aide et disponibilité

28suivi2.xlsx (8.44 Ko)

La question ne portait pas sur le fichier Suivi2

Marc L a écrit :

En l'état actuel, dans le fichier Suivi1 seules les colonnes date, fournisseur et référence sont récupérables

par comparaison avec les titres des colonnes du fichier Synthèse !

Comment regrouper les autres ? …

désolé, je n'avais pas compris. Quoi qu'il en soit, j'ai uniformisé les 2 fichiers suivi par rapport à la synthèse, je verrai dans le futur pour tout uniformiser de mon côté aussi sur les 'vrais' fichiers.

Ci-joint les 2 fichiers màj

Merci pour votre aide

21suivi1.xlsx (10.00 Ko)
22suivi2.xlsx (8.44 Ko)

Cela n'a pas l'air d'intéresser foule pendant mon absence …

Sinon sûr de modifier une centaine de fichiers pour les uniformiser ?!

En grillant une paire de neurones, ne pourrais-tu concevoir une autre solution ?

Comme par exemple créer une table d'équivalence des titres de colonnes par exemple dans la feuille 2 de la synthèse …

C'est sûr, c'est un autre boulot mais j'attends que de ton côté la conception soit claire et bien définie

avant d'entreprendre la première ligne de code …

Ma préférence va à l'uniformisation actuelle des fichiers de suivi car dans ce cas même un débutant

disposant d'un tant soit peu de jugeote peut s'en sortir avec les fonctionnalités de base d'Excel et de son Générateur de macros !

En effet, ça n'intéresse personne à part vous. Bref.

Non, je suis prêt à uniformiser les fichiers, il n'y a pas de souci. En général, la structure reste la même, seuls les libeller changent, je pourrai toujours faire ma tambouille. L'essentiel pour moi est de comprendre comment faire pour borner et récupérer les infos. J'ai des connaissances en excel, mais pas assez pour le vba malheureusement, sinon je ne demanderai pas En général, j'aime me débrouiller seul quand je peux le faire.

Merci pour votre aide

Avec juste un filtre avancé manuellement comme par code (la copie se fait en une seule ligne de code !) …

Les fichiers de suivi sont localisés dans un répertoire qui leur est dédié ?

Ont-ils tous le même préfixe dans leurs noms ?

Bref, avec tenants & aboutissants, on pourra envisager quelque chose …

Les fichiers se trouveront sur le lecteur C: avec leur nom respectif comme suivi1, suivi2, etc...

Le but final de la synthèse en fait, est de pouvoir borner entre 2 dates choisies pour voir les différents arrivages de la date choisie pour évaluer une charge de travail. Voilà le but final de la manoeuvre.

Coller le code dans le classeur de synthèse puis modifier la constante DOSSIER pour la source des fichiers :

Sub Bouton2_QuandClic()
Const DOSSIER$ = "D:\Tests4Noob\"
      FICHIER$ = Dir(DOSSIER & "suivi*.xlsx"):  If FICHIER = "" Then Beep: Exit Sub
Application.ScreenUpdating = False
With [A14].CurrentRegion.Offset(1):  .Clear:  .Interior.ColorIndex = 24:  End With
DATES = Array(">=" & [C10].Text, "<=" & [G10].Text)

Do
    Workbooks.Open DOSSIER & FICHIER

    With Cells(1).CurrentRegion
        .Columns(5).Delete
        [L1:M1].Value = .Cells(1).Value
        [L2:M2].Value = DATES
        .AdvancedFilter xlFilterInPlace, [L1:M2]
        .Rows("2:" & .Rows.Count).Copy Feuil1.Cells(Rows.Count, 1).End(xlUp)(2)
    End With

    ActiveWorkbook.Close False
           FICHIER = Dir
Loop Until FICHIER = ""
End Sub

A enregistrer en classeur binaire ou en classeur avec macros

Bonjour Marc,

Tout d'abord, merci d'avoir pris de votre temps pour m'aider. J'ai essayé le code et je l'ai attribué au bouton pour la macro. Par contre, lorsque je borne par exemple entre le 18/03/2015 et 18/03/2015, il me ressort quand même les données avant et après la date. Également, ,j'aurai juste une autre question : si un des fichiers n'aura pas le nom qui commence par 'suivi' mais s'appelle par exemple 'encre', comment je spécifie cela dans le code ? Car j'essaie de comprendre le code (c'est le but) et je vois qu'il cherche les fichiers suivi*.xlsx*

Encore merci pour votre boulot

Le code fonctionne bien évidemment sur ma version 2003 mais j'avais oublié depuis la version 2007 une régression côté IA !

Voici un code testé avec succès sur la version 2003 comme sur la 2007 :

Sub Bouton2_QuandClic()
Const DOSSIER$ = "D:\Tests4Noob\"
      FICHIER$ = Dir(DOSSIER & "suivi*.xlsx"):  If FICHIER = "" Then Beep: Exit Sub
Application.ScreenUpdating = False
With [A14].CurrentRegion.Offset(1):  .Clear:  .Interior.ColorIndex = 24:  End With
DATES = Array(">=" & [C10].Value2, "<=" & [G10].Value2)

Do
    Workbooks.Open DOSSIER & FICHIER

    With Cells(1).CurrentRegion
        .Columns(5).Delete
        [L1:M1].Value = .Cells(1).Value
        [L2:M2].Value = DATES
        .AdvancedFilter xlFilterInPlace, [L1:M2]
        .Rows("2:" & .Rows.Count).Copy Feuil1.Cells(Rows.Count, 1).End(xlUp)(2)
    End With

    ActiveWorkbook.Close False
           FICHIER = Dir
Loop Until FICHIER = ""
End Sub

Si cela ne va pas de ton côté, je suis occupé pour le reste de la journée, seul un intervenant disposant de ta version …

Concernant le nom des fichiers :

Marc L a écrit :

Les fichiers de suivi sont localisés dans un répertoire qui leur est dédié ?

Ont-ils tous le même préfixe dans leurs noms ?

wonder68 a écrit :

avec leur nom respectif comme suivi1, suivi2

C'est l'un ou l'autre …

Marc

Ca fonctionne maintenant. Merci mille fois de ton aide, j'apprécie.

Charge à moi maintenant d'uniformiser et de sauvegarder les fichiers avec un nom similaire.

Mille mercis

wonder68 a écrit :

de sauvegarder les fichiers avec un nom similaire.

Ou de dédier un répertoire, la fonction Dir sur "*.xlsx"

Rechercher des sujets similaires à "macro qui permet regrouper synthese"