copie de certaines lignes dans un onglet

davs63

XLDnaute Nouveau
Bonjour tout le monde :)

J'aime beaucoup Excel même si je suis en mode "découverte" et j'ai crée un fichier composé de plusieurs onglet pour l'inscription d'enfants dans divers accueil de loisirs pour les vacances d'été.

Je suis du genre débrouillard et j’aime me casser la tête la trouver la bonne formule pour arriver à mes fins. Mais quelques fois il faut aussi s'avouer vaincue lol et c'est pourquoi je sollicite votre aide pour un truc trop complexe pour moi :)

J'ai un onglet par accueil de loisir contenant de haut en bas le nom et prénom de l'enfant et de droit a gauche, par groupe de 3 cellule leur présence matin midi et aprem, toutes les trois cellule donc est une journée

exemple :
Lien supprimé


Et j'aimerai dans une autre feuille afficher la liste des enfants présent a un jour donné

J'ai tenté les filtres mais je ne sais filtrer que sur une colone : j'arrive a afficher les enfants qui viennent que le matin, mais du fait ça ne prend pas en compte ceux qui viennent l'aprem

Auriez vous une formule qui copie une ligne seulement si il a une donnée dans certaine case ... ( et encore que du coup j'aurai des lignes vides ...) Auriez vous une idée pour faire une feuille recap d'une journée ?

je vous met un bout de mon fichier excel dans ce message
 

Pièces jointes

  • Fichier inscription - mini.xlsx
    106.2 KB · Affichages: 24
  • Fichier inscription - mini.xlsx
    106.2 KB · Affichages: 28

CISCO

XLDnaute Barbatruc
Re : copie de certaines lignes dans un onglet

Bonjour

Cf. une possibilité sur Feuil1 avec une formule matricielle à valider avec Ctrl+maj+entrer, juste pour les maternelles. Si tu as des questions, postes les sur le forum.

@ plus
 

Pièces jointes

  • Fichier inscription - mini.xlsx
    109.8 KB · Affichages: 18
  • Fichier inscription - mini.xlsx
    109.8 KB · Affichages: 18

davs63

XLDnaute Nouveau
Re : copie de certaines lignes dans un onglet

Bonjour Cisco :)

merci de t’intéresser a mon probleme :)

J'aimerai savoir ce que tes formules font ? car j'ai changé des trucs sur la feuille principale et ça ne change pas feuille1



PHP:
=SIERREUR(
    INDEX(
            Davayat!B$1:B$23;
            PETITE.VALEUR
            (
                SI(
                     (DECALER
                        (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0))="x"
                     )
                +
                     (DECALER
                        (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+1)="x"
                     )
                +
                     (DECALER
                        (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+2)="x"
                     )
                     ;LIGNE($10:$23)
                   )
                     ;LIGNE(1:1)
        )
            )
        ;
        "")

Pourquoi tu utilise par exemple la colonne G de la feuille davayat ?

et je ne comprend pas non plus le SI ... + ... +
 
Dernière modification par un modérateur:

CISCO

XLDnaute Barbatruc
Re : copie de certaines lignes dans un onglet

Bonsoir

La syntaxe de la fonction DECALER est DECALER(cellule ou plage initiale; nbre de lignes de décalage;nbre de colonnes de décalage;hauteur de la plage à renvoyer;largeur de la plage à renvoyer)

EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0) renvoie la position de la date contenue dans Feuil1!A$1 dans la plage Davayat!H$9:BO$9.

DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)) renvoie la première colonne du jour contenu dans Feuil1!A$1, par ex pour le 07/07/2016, cela donne la plage DECALER (Davayat!G$10:G$23;;10) donc Davayat!Q$10:Q$23.

(DECALER(Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0))="x") renvoie un 1 pour chaque cellule de la plage précédente contenant un "x" (donc colorée), 0 pour celles contenant autre chose qu'un "x", ou vide.

(DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+1)="x"), idem pour la seconde colonne du jour considéré.

(DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+2)="x") pour la troisième colonne.

SI((..... ) + (.....) + (.....);LIGNE($10:$23) renvoie la liste des n° de ligne contenant un "x" ou dans la première, ou dans la seconde ou dans la troisième colonne du jour concerné.


PETITE.VALEUR (......;LIGNE(1:1)) renvoie le premier de ces n° de lignes.

INDEX(Davayat!B$1:B$23;PETITE.VALEUR(.......)) renvoie le nom dans la plage B1:B23 correspondant à ce premier n° de lignes.

Dans la ligne en dessous, le LIGNE(1:1) devient LIGNE(2:2), donc la formule renvoie le nom correspondant au second n° de la liste des n° de lignes contenant des x dans les colonnes correspondant à la date dans A1.

Cela ne fonctionne ainsi que parce que la formule est matricielle. C'est cela qui fait qu'on obtient une liste de n°, et qu'on sélectionne un de ces n° avec le PETITE.VALEUR(.....;LIGNE(...:...)).

Pour voir ce que donne une formule : ---> Formules --> Evaluation de formule --> Pas à pas détaillé.

@ plus
 
Dernière édition:

davs63

XLDnaute Nouveau
Re : copie de certaines lignes dans un onglet

Bonjour ! Je reviens d'une semaine en village vacances alors je m'y remet a excel :)

Merci pour toute ces explications notamment la définition d'une formule matricielle :) je vais me pencher dessus ça à l'air interessant
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 770
Membres
103 662
dernier inscrit
rterterert