Recherche de cellules en fonction de critères

fredtu

XLDnaute Junior
Re-bonjour à tous,

Dans le fichier joint, je souhaiterai pouvoir pour chaque personne afficher
- dans la colonne J : la première durée de la colonne C
- dans la colonne k : la première durée de la colonne C correspondant à la première cellule non vide de la colonne temps total (colonne F)

Par exemple pour Max, je dois avoir J3=00:00:12 et K3=00:18:40
et pour Pierre : J4=00:00:49 et K4:01:16:21

En recherchant sur le forum et sur google, j'ai bien trové des pistes avec RECHERCHEV ou INDIRECT, mais je sèche.

Je me permets de solliciter votre aide.

merci d'avance.
 

Pièces jointes

  • Test.xlsx
    18.2 KB · Affichages: 50
  • Test.xlsx
    18.2 KB · Affichages: 53
  • Test.xlsx
    18.2 KB · Affichages: 52
Dernière édition:

Jocelyn

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Bonjour le Forum,
Bonjour fredtu,

Un essai en fichier joint par formule matricielles à valider en appuyant simultanément sur CTRL, Maj (au dessus de CTRL) et entrée

Bonne année

Cordialement
 

Pièces jointes

  • Test fred.xlsx
    19.1 KB · Affichages: 55

Modeste

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Bonjour fredtu,

Pas certain que les colonnes que tu indiques soient les bonnes (j'aurais dit I et L ?), mais essaie

En J3:
Code:
=INDEX($C$3:$C$35;EQUIV($H3;$B$3:$B$35;0))

Et en K3:
Code:
=INDEX($F$3:$F$35;MIN(SI($B$3:$B$35=$H3;SI($F$3:$F$35>0;LIGNE($F$3:$F$35)-2))))
cette seconde formule est à valider avec Ctrl+Shift+Enter

Edit: Salut Jocelyn :) tout baigne?
 

fredtu

XLDnaute Junior
Re : Recherche de cellules en fonction de critères

Merci à tous les deux pour vos propositions.

Comme vous le précisez, mon tableau n'était pas à jour, j'avais inséré deux colonnes, j'ai loupé la sauvegarde...

Jocelyn, ta propo marche parfaitement.
Modeste, il y a un souci avec cette formule :
=INDEX($F$3:$F$35;MIN(SI($B$3:$B$35=$H3;SI($F$3:$F$35>0;LIGNE($F$3:$F$35)-2))))
La première marche également parfaitement.

Je vais essayer de déchiffrer et de comprendre la rédaction pour pouvoir l'appliquer.

Merci bcp pour votre.

Bonne année à vous.
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Bonsoir fredtu,

Vérifie si la formule est bien encadrée par des accolades: c'est sans doute la validation matricielle qui pose problème ...
  • Copie la formule, colle-la en L3
  • Clique dans la barre de formule (n'importe où, ... du moment que tu vois la formule :D)
  • Enfonce Ctrl et Shift
  • En laissant ces 2 touches enfoncées, frappe sur Enter
  • Les accolades devraient être visibles et le premier résultat attendu (00:18:40) devrait apparaître
  • Recopie la formule vers le bas
 

fredtu

XLDnaute Junior
Re : Recherche de cellules en fonction de critères

En complément :
J'importe mon tableau source par une macro.
Il change tous les jours.
Or je me retrouve avec une erreur #ref dans mon tableau de sortie.
J'ai verrouillé les cellules et protégé la feuille, mais cette erreur persiste.
Comment puis-je faire pour que la mise à jour du premier tableau source n'entraine pas cette erreur de référence ?

Faut-il que je passe par des macros pour effectuer mes calculs plutôt que par des fonctions ?
 

Modeste

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Bonjour fredtu,

Je ne pense pas que la protection de la feuille change quelque chose à l'affaire, dans ce cas-ci :confused:

Ce qu'il serait utile de préciser, pour qu'on puisse te répondre, c'est dans quel cas de figure obtiens-tu un #REF!? L'erreur apparaît comme résultat de la formule ou dans la formule elle-même, là où figurait une référence de cellule? Tu colles tes données toujours au même endroit, mais je suppose que le nombre de lignes est variable? Tu travailles avec une plage nommée "dynamique? Avec un tableau? La macro efface les anciennes données ou elle supprime des cellules? etc.
 

fredtu

XLDnaute Junior
Re : Recherche de cellules en fonction de critères

J'obtiens le #ref pour chaque plage dans mes formules, et aussi ensuite dans le résultat.

Dans mon fichier réel, j'ai un onglet dans le quel je colle mon tableau "extrait" - Feuil2 - (c'est une copie du contenu de la feuille complète du fichier source).
Et dans le second onglet, j'ai mon tableau "résultat".


Le tableau qui se copie sur Feuil2 a toujours la même structurepour ce qui concerne les colonnes et la mise en forme. Le nombre de ligne peut varier, mais j'avais élargi la plage pour comptabiliser 500 lignes (ce nombre ne sera jamais atteint).


Je dois développer ensuite une macro me permettra de copier mon tableau Résultat dans un autre Onglet (valeurs et format), puis une autre qui effacera la feuil2 avant de quitter sans sauvegarder. (ça je saurai le faire).

Pour faire le test et vérifier que toute la première partie fonctionne, je supprime le contenu de Feuil2 pour remettre le fichier à zéro et enregistre avant de fermer.

Quand j'ouvre de nouveau mon fichier, il ne reconnait plus les plages que j'avais saisies et m'indique l'erreur #ref.

J'espère être assez précis.
Merci de te pencher sur mon cas.
 

Modeste

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Re-bonjour,

Sans voir "la bête", difficile de faire des hypothèses (il y en aurait tellement)
Mais si tu écris:
Pour faire le test et vérifier que toute la première partie fonctionne, je supprime le contenu de Feuil2 pour remettre le fichier à zéro et enregistre avant de fermer.
Une de mes questions était: "La macro efface les anciennes données ou elle supprime des cellules?" ... on ne sait toujours pas! Tu as testé en mettant en commentaire, dans ta macro, la partie qui "supprime le contenu de Feuil2", pour voir si le résultat est différent, à la réouverture?
 

fredtu

XLDnaute Junior
Re : Recherche de cellules en fonction de critères

J'ai inséré le code pour effacer la feuille 1 en fin de traitement.
Aussitôt la référence des plages est perdue...


Je dois oublier quelque chose quelque part...

Je te joins un exemple de ce que donne mon fichier et un exemple de fichier source.
 

Pièces jointes

  • Stats_Tel.xlsm
    40.9 KB · Affichages: 43
  • Session_agents 04012013.xls
    22.5 KB · Affichages: 27

Modeste

XLDnaute Barbatruc
Re : Recherche de cellules en fonction de critères

Bonsoir,

Dans ta procédure "Supprimer_les_cellules_de_la_feuille1()", lorsque tu écris:
Code:
Selection.Delete Shift:=xlUp
et comme le dit le nom de la procédure en question, tu supprimes des cellules ... ce qui n'est pas la même chose qu'effacer leur contenu! Si tu mets un point d'arrêt sur cette instruction, que tu appuyes sur F8 pour n'exécuter qu'elle et que tu regardes la Feuil2, tu constateras que tes #REF! sont déjà présents.
A mon sens, tu peux remplacer le contenu de ta procédure par un simple
Code:
Worksheets("Feuil1").UsedRange.Clear
Ceci efface le contenu, les formats, les commentaires et les éventuels liens hypertextes de la plage "utilisée". Les formules de la Feuil2 affichent dès lors une erreur, mais pas la même et quand des données sont à nouveau collées en Feuil1, elles ré-affichent les bons résultats.

A noter que la liste des prénoms en Feuil2 ne se met pas à jour, en fonction du contenu de la Feuil1 et que les formules contiennent des prénoms "en dur" ... elles n'afficheront un résultat cohérent que si les prénoms sont les 4 mêmes à chaque fois!?
 

fredtu

XLDnaute Junior
Re : Recherche de cellules en fonction de critères

Merci une nouvelle fois.
les choses deviennet très simple quand on passe par des pros. Il va falloir que je me trouve un dico des "expressions" VBA,...

Concernant le choix des prénoms en dur, c'était voulu. Mon tableau résultat est complété par avance avec une ligne par personne. Donc même si j'ai un nom supplémentaire, ses coordonnées sont déjà réservées. Mais c'est vrai que ça cause du boulot en supplément au départ puisque le copier/coller tout simple de la formule ne peut pas fonctionner.

Encore merci pour ton aide au combien précieuse.
 

Discussions similaires

Statistiques des forums

Discussions
312 929
Messages
2 093 715
Membres
105 794
dernier inscrit
mallet