5 dernières fois qu'une valeur est apparu dans les feuilles

Bonjour,

Excusez moi pour le titre pas forcément compréhensible.

Il y a quelque chose que j'aimerais arriver à faire dans Excel si c'est possible.

J'ai un fichier avec 15 feuil (feuil1, feuil2,...)

Dans ces 15 feuil j'ai 20 caractères dans 2 colonne par feuil.

J'aimerai savoir si c'est possible de récupérer les 5 dernières fois qu'un caractère est sortis dans une des deux colonnes?

Par exemple prenons le caractère "B":

Il faudrait que je retrouve les 5 dernières fois où "B" est apparu dans la "colonne 1".

En sachant que "B" n’apparaît pas forcement dans la "colonne 1" des 5 dernières feuilles.

Est-ce possible de faire ça avec une Fonction d'Excel ou faut t'il aller plus loin avec un peux de programmation? Ou est-ce impossible?

J'espère que ma question est compréhensible.^^

Merci d'avance pour vos réponses.

Yu

23test1.xlsx (18.48 Ko)

Bonsoir,

À mon humble avis, tu peux faire ça en passant par du code, mais pas autrement.

Tu pourrais stocker ton alphabet (c'est tout l'alphabet qui est concerné, ou tu as besoin de quelques lettres seulement ?) sur une feuille supplémentaire dans une colonne, puis inscrire à côté les dernières adresses des cellules (ou les dates et heures, il faudrait que tu précises plus exactement ce que tu veux récupérer) dans lesquelles chaque lettre a été inscrite, du genre :

A Feuil1!A2 Feuil3!A5 ... | Feuil3!B5 Feuil6!B3 ...

B Feuil3!A5 Feuil8!A9 ... | Feuil9!B1 Feuil7!B7 ...

Chaque fois qu'une lettre serait saisie où il faut, on pourrait utiliser l'évènement Worksheets_Change de la feuille modifiée pour récupérer l'adresse de la cellule venant d'être impactée, et la stocker dans cette nouvelle feuille en utilisant un roulement pour ne conserver que les 5 dernières, et ce avec une procédure unique.

Après, par le biais d'une mise en forme conditionnelle, il devrait même y avoir moyen de colorer les cellules concernées.

Est-ce que c'est le genre de chose qui te conviendrait ou non ?

Merci pour ta réponse Oyobrans.

Oula ça commence à être compliquer pour moi qui suis débutant!

Oui c'est bien tout l'alphabet qui est concerner, là j'ai donner l'exemple avec B mais je devrait le faire pour toute les lettres.

En fait je veux récupérer "en partant de la dernière feuille" les 5 dernières fois où la lettre "B" est apparut dans la "colonne 1".

Donc comme je part de la dernière feuille je ne pense pas qu'il y est besoin de dates ou autre?

Est-ce que tu peux donner un exemple illustrant bien ce que tu souhaites obtenir ? Il est important de bien définir la problématique si tu veux que quelqu'un t'aide. Si on ne sait pas vraiment ce que tu veux, personne ne va te faire ton truc, il faut que ce soit précis. Limite tu reprends ton fichier en virant toutes les lettres sauf B.

Si la dernière fois qu'on a inscrit B, c'est en Feuil1, mais qu'il y a déjà 5 B dans les feuilles 8, 9, 10, 11, 12, on ne tient pas compte de cette dernière inscription ? Donc ce ne serait pas la dernière inscription dans le temps, mais la présence sur les dernières feuilles du fichier qui t'importe ?


Et s'il y a 6 B sur la dernière feuille, comment on fait ? Il y a combien de B au maximum sur une feuille ?

Ok alors,

ce que je veux exactement.

En fichier joint, j'ai rajouter 2 colonne avec des chiffres devant chaque lettres.

Peux être que ça sera plus facile a comprendre.

Là j'ai 15 feuilles.

Je voudrai une fonction sur la dernière feuille (15ème) qui récupère la somme des chiffres (se trouvant sur la même ligne) des 5 dernières fois où "B" est apparut dans la "colonne 1".

En sachant que "B" n'est pas forcement apparut dans la "colonne 1" sur les 5 dernières feuilles.

Il faudrait que cette fonction commence la recherche à partir de la 14ème feuille en redescendant à la 13ème, puis 12ème... jusqu’à trouver 5 fois "B" dans la "colonne 1" et en récupérant a chaque fois le chiffre inscrit dans la 2ème colonne en face de B puis faire la somme des 5 chiffres.

je te montre l'exemple si je fait ça manuellement.

  • Donc je commence sur la 14ème feuille, je repère "B" et le chiffre en face "2",
  • ensuite je vais sur la feuille 13 même manip je repère "B" et le chiffre en face "2".
  • Sur la 12ème feuille "B" n'est pas dans la "colonne 1" donc je passe à la feuille 11, là non plus "B" n'est pas dans la "colonne 1".
  • Je repère "B" dans la "colonne 1" jusqu’à la feuille 7. (5ème fois où B sort dans la colonne 1 et je ne vais pas plus loin)
là j'ai mes 5 fois où "B" est apparut dans la "colonne 1", en récupérant le chiffre à chaque fois donc une somme de 10.

Si la dernière feuille était la 10ème, je commencerait ma recherche par la 9ème feuille.^^

Est-ce que tu comprend mieux ou c'est pire mon explication?

EDIT: Il y a seulement 1 B par feuille.

17test1.xlsx (20.94 Ko)

bonjour

un essai sans grande conviction

19yuril.xlsx (18.45 Ko)

le resultat est en feuille 15 ( pas vu l'onglet )

cordialement

Merci tulipe_4!

ça a l'air pas mal!

Mais par contre ça récupère toute les fois où "B" apparaît, et pas seulement sur les 5 dernière fois.

Le but c'est vraiment de récupérer juste les 5 dernière fois (ou dernière feuille) où "B" apparaît dans la "colonne 1".

Merci encore c'est tout cas peux être une piste.

Bonjour

Un autre tableau

cordialement

11test1.xlsx (23.18 Ko)

Bonsoir

Suite

Ou,

Voir fichier

Cordialement

25test1.xlsx (22.14 Ko)

Merci Amadéus!!

C'est exactement ce que je recherche!

Si ce n'est pas trop demander, est-ce que je pourrait avoir une petite explication sur les formules utiliser?

Je suis vraiment débutant sur Excel et j'ai encore du mal avec certaine fonctions et symboles.

En tout cas merci beaucoup!

Est-ce que tu comprend mieux ou c'est pire mon explication?

Ben à priori, c'est mieux.

Oui

re

en attandant les explications d'Amadeus; voici une copie revisée de mon 1er post (une fois de plus j'avais mal lu )

j'y ai mis des explications ;en esperant que .......

normalement tu as 2pistes

9yuril-2.xlsx (20.51 Ko)

cordialement

Bonjours,

Merci Tulipe_4

Je pense que la méthode d'Amadéus est plus adapter pour récupérer d'autre données.^^

Hier soir j'ai donc étudier un peux les formules d'Amadéus, j'ai créer un nouveaux fichier avec des journée de championnat de foot de L1.

1 feuille = 1 journée

Le fichier est composer d'une feuille avec les 20 équipes (elle me sert a faire un choix d'équipe sur chaque journée sous forme de liste)

Puis de 11 feuille qui représente 11 journée de championnat.

Et la dernière feuille où j'ai essayer de mettre la méthode d'Amadéus pour récupérer le nombre de buts marquer sur les 5 dernier match à domicile de Marseille.

Le soucis c'est que ça ne fonctionne pas!

Il y "0" sur chaque journée alors que Marseille sort au moins 5 fois à domicile.

Je pense que les formules sont bonne mais qu'il y a autre chose qui bloque.

Est-ce à cause du choix par liste sur chaque journée? a cause de cellules fusionnées? Autre?

Désolé je penser qu'il serait facile de transposer les formule ailleurs.

Voici-ci le fichier dans lequel les formules seront utiliser: merci.

9l1-test.xlsx (47.78 Ko)

Bonjour,

Si je te suis bien, le but est compter le nb de buts inscrit par chaque équipe pour les 5 derniers matchs à l'extérieur et à domicile ?

Bon, j'ai viré toutes les fusions inutiles de tes tableaux, tant que tu peux éviter, évite, joue plutôt avec les dimensions des lignes et des colonnes. J'ai supprimé la première feuille, les équipes sont dans la dernière. La macro effectue le comptage de la première à l'antépénultième, donc ici la 10.

Est-ce que c'est ce que tu veux?

21l1-test.xlsm (51.61 Ko)

Hum c'est pas mal ça!^^

Oui c'est bien ça que je veux faire

Vu que je mis connait pas en Macros j'ai quelques questions.

-Si je rajoute des journées pour que ça fonctionne il faut que je déplace la feuille "Equipes" à la fin à chaque fois?

-Si je fais ça avec d'autre championnats qui comportent plus ou moins d'équipes. quelles sont les modifications a apporter à la macro?

par exemple j'ai un championnat avec 24 équipes, il faut que je modifie simplement cette ligne? (Li 9, Col 20) : For i = 2 To 21 en For i = 2 To 25

-Si je comprend bien ça ne fonctionne pas si les cellules sont fusionnées?

Merci en tout cas pour cette Macro oyobrans.

-Si je rajoute des journées pour que ça fonctionne il faut que je déplace la feuille "Equipes" à la fin à chaque fois?

Il faut que tu places ta nouvelle feuille avant la dernière. Tu as déjà les équipes dans la dernière feuille, c'est redondant du coup, non ? La macro part de l'avant-dernière feuille vers la première, ça a son importance. Après, si tu veux vraiment tes équipes au début, il faut adapter, dis quoi.

par exemple j'ai un championnat avec 24 équipes, il faut que je modifie simplement cette ligne? (Li 9, Col 20) : For i = 2 To 21 en For i = 2 To 25

Oui, et For k = 3 To 12, ce sont les lignes des feuilles qui contiennent les résultats. Là, ta plage des équipes qui reçoivent est A3:A12 sur chaque feuille, si tu as plus de matches, il faut adapter.

Si je comprend bien ça ne fonctionne pas si les cellules sont fusionnées?

Si, ça fonctionne, mais ça ne sert à rien ici, tu obtiens exactement la même chose sans fusions.

Ok merci pour ces réponses rapide oyobrans.

Que les équipes se trouvent au début ou a la fin n'a pas d'importance^^

Maintenant je vais essayer de faire un championnat complet avec 38 journées pour voir si tout fonctionne avec la macro.

Merci pour votre aide, à bientôt.

Bonjour

Explications dans le fichier

Cordialement

16test1.xlsx (23.98 Ko)

Que les équipes se trouvent au début ou a la fin n'a pas d'importance^^

Si, la macro va de la première à l'avant-dernière feuille, en sens inverse.

La feuille de fin :

nbF = Worksheets.Count - 2

Jusqu'à la première à rebours :

For j = nbF To 1 Step -1

À adapter à ton fichier.

Rechercher des sujets similaires à "dernieres fois valeur apparu feuilles"