Formule MAX et TCD

Bonsoir,

Dans un TCD j'ai fait figurer un filtre date ( figé ) qui contient d'innombrables éléments.

Ce que je désire c'est obtenir dans une autre cellule la valeur MAX de ce champs (la date la plus récente).

Il s'agit d'une info destinée aux utilisateurs car je ne veux pas déclencher l'actualisation à l'ouverture :

la Base de donnée est dans un fichier extérieur et pas nécessairement ouvert.

Cela permettra de connaitre la date de la dernière mise à jour de la base extérieure

et de voir la date de la dernière actualisation du TCD.

Les champs calculés de même que la fonction LIREDONNEESTABCROISDYNAMIQUE ne servent que dans les valeurs.

Après de vaines recherches j'en viens à solliciter de l'aide

Auriez-vous une solution simple à mon problème?

Merci d'avance

Bonsoir

Si tu n'as pas de sous-totaux dans ton TCD :

=GRANDE.VALEUR(C:C;2)

Où C:C correspond à la colonne en question.

2 car si on mettait 1 cela renverrait le TOTAL - Donc on prend la 2ème grande valeur.

Amicalement

Nad

Bonsoir,

Tout d'abord merci Nad pour la rapidité de ta réponse.

Cette formule est intéressante mais mon problème est plus corsé.

En effet je n'ai pas de colonnes de données dans les TCD en question.

Voici un exemple dans le fichier joint que j'ai enregistré sour forme .xls

au cas ou tu n'aurais pas 2007 ou 2010

Ce que je désire c'est que les personnes qui utilisent les TCD

que je ne peux mettre en actualisation automatique car cela mouline trop

aient un affichage de la date la plus récente c'est une sécurités pour

la vérification de l'actualisation des TCD car il y en a environ huit par fichiers.

(ainsi il éviterons d'oublier l'actualisation d'un des TCD dont ils se serviraient).

Merci d'avance pour toute solution apportée.

Amicalement

44tableautest.zip (12.51 Ko)

Bonsoir

Essaye en mettant le chemin complet de ton fichier "Dates" - Genre :

=MAX('C:\Users\Nadine\Desktop\[Dates.xls]Feuil1'!$A$1:$A$200000)

Amicalement

Nad

Re bonsoir,

Ce n"est pas possible car ce que je désire, c'est la pus grande date de la dernière actualisation du TCD

et non pas la plus grande date de la base car cela ne permettrai pas le contrôle que je désire.

A te lire

Amicalement

Re

Si je comprends bien, c'est toi qui décide de la mise à jour du TCD à une date X. Lors cette actualisation, tu veux la date la plus récente de la base mais que cette date ne bouge plus tant que tu ne fais pas de nouvelle actualisation.

Tu confirmes ?

Nad

Re,

En fait, j'alimente cette base 1 fois par semaines, les TCD que j'ai crées sont dans différents dossiers en partage.

Mais je n'aurai pas nécessairement accès à ces répertoires extérieurs.

Aussi je veux laisser le soin aux utilisateurs de mettre à jour les TCD en actualisant avec clic droit.

La base n'est pas accessible pour les utilisateurs et je ne peux pas laisser ma base ouverte constamment trop lourd.

Donc ils auront comme consigne d'actualiser à peu près dans un temps déterminé chaque semaines.

Le Hic c'est que s'ils oublient d'actualiser l'un des tableaux les données seront inexactes et ils risquent

ne pas s'en apercevoir. D’où mon désir de voir afficher cette date dans chaque pages pour chaque TCD.

J'espère que tu vas pouvoir m'aider

Amicalement

Re

Je pense qu'une macro résoudrait ton problème.

Ce code actualise tout le fichier et met la date max de la base en D2 de chaque feuille

Sub Actualise()
Application.ScreenUpdating = False
Dim S As Worksheet
ThisWorkbook.RefreshAll
For Each S In Application.Worksheets
S.Activate
Range("D2").FormulaR1C1 = _
         "=MAX('C:\Users\Nadine\Desktop\[Dates.xls]Feuil1'!R1C1:R20000C1)" 'Changer le chemin
    Range("D2") = Range("D2").Value
Next S
End Sub

Amicalement

Nad

RE,

Merci encore pour tous tes efforts,

mais la Macro s'arrête et surligne :

Range("D2").FormulaR1C1 = _

"=MAX('C:\Users\Nadine\Desktop\[Dates.xls]Feuil1'!R1C1:R20000C1)" 'Changer le chemin

Un message s'affiche :

Erreur de compilation

Erreur de syntaxe

D'autre part n'y-a-t-il pas un moyen d'obtenir la date sans macro

car je suis obligée de mettre mes fichiers en .xlsm et j'aurais préféré l'éviter autant que possible.

A te lire

Bonsoir

Bonjour

Pour me message d'erreur, si tu n'as pas changé le chemin du fichier dans le code c'est normal.

Autrement, autre méthode par formule.

1 - Bouton Office ==> Options excel ==> Onglet Formules : cocher "Itération"

2 - Formule en D2 (changer le chemin d'accès):

=SI($E$2="";"";SI($D$2<>"";D2;MAX('C:\Users\Nadine\Desktop\[Dates.xls]Feuil1'!$A$1:$A$200000)))

3 - En E2, mettre une valeur (X par exemple)

Pour actualiser la date en D2, il faut supprimer le contenu de E2 et y entrer une nouvelle valeur (texte, nombre ou espace)

Attention ! Modifier la valeur en E2 sans avoir préalablement supprimé l'existante ne modifie pas la date en D2.

Amicalement

Nad

Bonjour,

Effectivement je n'étais plus bien réveillée.

Par contre à présent je réalise que cette macro sert à obtenir la date du fichier extérieur,

alors que ce fichier est très certainement fermé.

Ce que je désire c'est la plus grande date correspondant au TCD lors de la dernière actualisation.

Sans faire appel à un lien quelconque avec la base extérieure.

A te lire

Amicalement

Re

As-tu essayé la formule en ayant le classeur DATES fermé ?

Nad

Re,

Non je vais essayer ce matin et je t'en parlerai ce soir

A+

Amicalement

Re

Je pense à un truc tout bête : pourquoi ne pas préparer le TCD de cette façon ?

capture

La formule en E2 est :

=MAX(C:C)

Il suffit de masquer le colonne C

Nad

Bonsoir,

Tout d'abord, pour ma macro j'ai essayé mais cela me plante tout.

Je veux définitivement une recherche uniquement sur le TCD sans se servir de la base.

Pour ce que tu me suggère ensuite c'est une super idée mais il demeure un problème.

C'est que les filtres ne permettent pas d'obtenir la totalité des dates

et par conséquent je n'ai pas nécessairement la date la plus récente.

Mais cela commence à se rapprocher de ce que je souhaite.

Par contre peux-tu me dire pourquoi en créant la formule =Max(Date)

dans les champs calculés j'obtiens des date fausses tel que pour crayon 06/10/2340

et non tes résultats.

Merci encore de toute ton aide

A te lire

Cordialement

Bonsoir

Demi Lune a écrit :

les filtres ne permettent pas d'obtenir la totalité des dates

Effectivement : si dans ta base ta dernière date ne correspond pas aux filtres du rapport, on l'a dans le baba.

Demi Lune a écrit :

peux-tu me dire pourquoi en créant la formule =Max(Date)

dans les champs calculés j'obtiens des date fausses tel que pour crayon 06/10/2340

et non tes résultats.

Non, je ne vois pas.

En ce qui me concerne, je n'ai pas réussi à trouver les filtres adéquats pour tomber sur tes résultats...

Peux-tu me dire comment tu as fait pour figer les filtres du rapport afin que je les remette pour que je sois d'équerre avec ton TCD et ainsi comparer ?

Amicalement

Nad

Re,

La macro est de Dan sur le fil Selection filtre à figer.

Je sais qu'il faut éviter de joindre des fichiers mais tu pourras le supprimer après

et tu y trouvera les résultats obtenus.

As-tu une idée pour obtenir toutes les dates?

A+

19tableautest2.zip (9.81 Ko)

Re

Il ne faut pas ajouter un champ calculé pour "Max de Date"

Tu reprends "Date" dans la zone de champs à inclure et tu glisses dans la zone "valeurs" en modifiant le paramètre du champ sur "Max"

Edit : sur ton fichier original, la source fait appel également à la sélection des colonnes entières ?

Nad

Re,

OK, mais cela ne me donnera pas la date la plus récente si elle n' est pas sélectionné dans les filtres TCD.

N'y a-t-il pas une autre solution ?

A te lire

Amicalement

Re

Autre solution : quand tu as décidé de l'actualisation du TCD tu fais une ligne supplémentaire dans les dates

capture

Le TCD devient :

capture2

Nad

Rechercher des sujets similaires à "formule max tcd"