XL 2016 Résumer de tableau

M@xu3L

XLDnaute Junior
Bonjour tous le monde,

Je viens vers vous afin de savoir si c'est possible ou non mon idée. Je m'explique j'ai plusieurs tableau de données dans plusieurs fichiers ou la seule valeurs commune à ces tableaux serait la dates.
Serait-il possible de créer un fichier Excel qui va pouvoir chercher dans tous ces fichiers la dernières date inscrit dans ces fichiers?

Je ne sais pas si je m'exprime correctement ou pas mais n'hésiter pas a me dire pour plus d'info…

Cordialement
 
Solution
Et il n'y a pas moyen que le code evite les fichier ou il n'y a pas l'onglet résultats par exemple
Si, avec la fonction suivante :
VB:
Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function
Elle renvie True si la feuille existe, False si elle n'existe pas.
Dans ma PJ "résumé d'utilisation" le code modifié donnerait :
Code:
    If Fichier <> FichierCourant Then
        Workbooks.Open Filename:=CheminFichier
        If FeuilleExiste("Résultats") = True Then   ' Vérification si feuille existe
            If Not IsError(Application.Match("Date", Sheets("Résultats").[B:B], 0)) Then
                DateMax =...

sylvanu

XLDnaute Barbatruc
Supporter XLD
1- Il suffit de supprimer les lignes construisant Conformité, voir PJ.
2- Il scanne automatiquement tous les fichiers xlsm qui sont dans le même dossier, et exclut évidemment lui même.
-Tous les fichiers de données sont dans le même dossier que le fichier résumé.
Mais en supposant que tous les fichiers présent sont bien au bon format, date en colonne B.
 

Pièces jointes

  • résumé d'utilisation (V2).xlsm
    19.8 KB · Affichages: 1

M@xu3L

XLDnaute Junior
1- Il suffit de supprimer les lignes construisant Conformité, voir PJ.
2- Il scanne automatiquement tous les fichiers xlsm qui sont dans le même dossier, et exclut évidemment lui même.

Mais en supposant que tous les fichiers présent sont bien au bon format, date en colonne B.
Sa a l'air de bien fonctionner mais je ne comprend pas j'ai certaine date qui ne sont pas bonne...inversé...comme si ces dates était en format anglais...
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est un piège où on tombe bien souvent car le VBA ne parle qu'anglais. :mad:
En PJ une nouvelle version. J'y ai mis une sécurité : si dans le fichier il ne trouve pas "Date" en colonne B, il ignore le fichier.
J'ai ai aussi mis en colonne B la MFC :
VB:
=$B8-AUJOURDHUI()+8>=0
 

Pièces jointes

  • résumé d'utilisation (V3).xlsm
    20.8 KB · Affichages: 3

M@xu3L

XLDnaute Junior
C'est parfait !!! En tous les cas sur mes premiers tests c'est exactement sa. En revanche je vien de me rendre compte que dans mon dossier il y avait d'autre fichier qu'il ne fallait pas prendre en compte c'est possible ou pas?? si sa n'est pas possible ce n'est pas grave...
 

M@xu3L

XLDnaute Junior
Donc si vos autres fichiers n'ont pas le mot "Date" en colonne B alors ils seront ignorés.
Si ce n'est pas le cas, il faut trouver quelque chose pour les rejeter.
ok nickel je vai enlever la date en colonne B ^^ sa sera plus simple lol ^^ en revanche je vient de me rendre compte que lorsque l'on clic sur le bouton sa m'éfface toute les formule ect que j'ai pu rentrer en colonne C de ton fichier...
Par exemple je te met un screen de ce que je voulais mettre en place et sa ne fonctionne pas parce que a chaque fois que je vais cliquer sur mettre a jour sa me l'efface ^^

1697034036794.png

Voila donc dans la colonne C la formule simple mais efficase =SI(B8+7<AUJOURDHUI();"A Faire";"Fait") et une MFC pour dire si c'est écrit "Fait" c'est en vert et si c'est écrit "A Faire" c'est en rouge.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
=SI(B8+7<AUJOURDHUI();"A Faire";"Fait")
d'autres tous les mois
On en est au post #23 et on tâtonne toujours.
Pourquoi ne pas mettre toutes les hypothèses d'un seul coup ?

Je n'ai aucune solution à vous proposer car on ne maitrise pas dans quel ordre la liste des fichiers sera construite.
Donc vous risquez sur un fichier à 8 jours, de vous retrouver sur un fichier à 1 mois à la prochaine mise à jour sur la même ligne et donc la périodicité sera incorrecte.
Le seul moyen serait que dans chaque fichier il y ait la périodicité. Sinon je ne vois pas comment résoudre le problème.
Sauf évidemment si dans le fichier d'utilisation vous mettez le nom des fichiers à traiter, mais ça, c'est une autre histoire et une tout autre macro.
 

M@xu3L

XLDnaute Junior
On en est au post #23 et on tâtonne toujours.
Pourquoi ne pas mettre toutes les hypothèses d'un seul coup ?

Je n'ai aucune solution à vous proposer car on ne maitrise pas dans quel ordre la liste des fichiers sera construite.
Donc vous risquez sur un fichier à 8 jours, de vous retrouver sur un fichier à 1 mois à la prochaine mise à jour sur la même ligne et donc la périodicité sera incorrecte.
Le seul moyen serait que dans chaque fichier il y ait la périodicité. Sinon je ne vois pas comment résoudre le problème.
Sauf évidemment si dans le fichier d'utilisation vous mettez le nom des fichiers à traiter, mais ça, c'est une autre histoire et une tout autre macro.
Excusez moi mais à la base moi je vous disais simplement que je ne voulais pas que la colonne c soit modifier lorsque l'on appui sur le bouton mise à jour comme sa je pouvais construire mes formule de mon côté sans vous embêter...
 

M@xu3L

XLDnaute Junior
Salut Sylvanu,

Je suis désolé de revenir t'embêter mais j'aurai une petite question sur le bout de code que tu ma créer Est-il possible de dire au code d'aller chercher la date dans un onglet spécifique?? Car je viens de me rendre compte que si j'ai plusieurs onglets il ne va pas trouver la date en colonne B car je suis pas sur le bon onglet... J'ai le même onglet dans toutes mes classeurs Excel ou il faut chercher la date donc sa pourrais le faire...

L'onglet à rechercher est "Résultats".

Merci d'avance de ta réponse.

Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Dans le VBA remplacez la ligne :
VB:
If Not IsError(Application.Match("Date", [B:B], 0)) Then
par
Code:
If Not IsError(Application.Match("Date", Sheets("Résultats").[B:B], 0)) Then
pour essayer.
Dans les fichiers donnés, cela ne peut pas être testé car il n'y a pas de feuille Résultats.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 247
Membres
103 163
dernier inscrit
Pelaez