Transfert automatique de ligne vers autre feuille

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.

Transfert automatique de ligne vers autre feuille

Messagepar JudoCP » 14 Sep 2021 20:16

Bonjour, à tous. J'ai fouillé sur le web et le forum mais je n'arrive pas à trouver ma réponse ou a comprendre les solutions proposées et à les adapter a mon problème.
Je suis en charge de la gestion des licenciés dans un club de judo. J'ai crée un tableau dans lequel je rentre les informations des différents licenciés.
Je souhaiterai pouvoir transférer automatiquement les lignes (ou tout du moins certaines cellules de ces lignes) vers une feuille correspondant au cours du licencié. Si le licencié est en Eveil sur la première feuille je souhaiterai qu'il apparaisse automatiquement dans la feuille nommé Eveil (sans avoir besoin de faire des copier coller manuel). De même pour les pupilles, poussins, benjamins et minimes. Pour les autres catégories (cadets, juniors et séniors) c'est la feuille adulte.
En espérant pouvoir trouver de l'aide.
P.S: les catégories sont "généré" automatiquement en fonction de la date de naissance via une formule.
Merci de votre aide.
Pièces jointes
LISTING.ods
(15.1 Kio) Téléchargé 10 fois
Dernière édition par JudoCP le 29 Sep 2021 07:42, édité 3 fois.
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22

Re: Transfert automatique de ligne vers une autre feuille

Messagepar OOotremer971 » 15 Sep 2021 01:57

Bonjour,

Dans le fichier joint, une solution à base de plages et formules nommées. Ces plages et formules sont enregistrées dans un conteneur spécial accessible par le menu Insertion>Noms>Définir ou le raccourci clavier Ctrl+F3 (touche de fonction F3 :) ).
La plage nommée _Source fait référence au tableau principal : $'LISTING 2021-2022'.$A$1:$I$500
La plage nommée _Cours fait référence à la colonne éponyme : $'LISTING 2021-2022'.$J$1:$J$500

La formule nommée _nf (comme nom de feuille, extrait le nom de la feuille dans laquelle elle est saisie :
Code : Tout sélectionner   AgrandirRéduire
SUBSTITUE(CELLULE("filename";$A$1);GAUCHE(CELLULE("filename";$A$1);CHERCHE("#$";CELLULE("filename";$A$1);1)+1);"")

Taper
Code : Tout sélectionner   AgrandirRéduire
=_nf
dans n'importe quelle feuille pour observer le comportement.

La formule nommée _Ventil, recherche dans la colonne _Cours les occurrences de _nf et retourne les numéros de ligne sur lesquelles il est trouvé. Elle se charge ensuite d'extraire le contenu du tableau _Source correspondant aux numéros de lignes précédemment trouvés ;
Code : Tout sélectionner   AgrandirRéduire
SI(LIGNE()-1>NB(SI(_Cours&"s"=_nf;LIGNE($A$1:$A$500);""));"";INDEX(_Source;PETITE.VALEUR(SI(_Cours&"s"=_nf;LIGNE($A$1:$A$500);"");LIGNE($A1));COLONNE()))


Pour remplir les différentes feuilles il suffit de saisir une seul fois =_Ventil en A2 de n'importe quelle feuille puis de valider en maintenant les touches Ctrl et Maj enfoncées lors de l'appui sur la touche Entrée.
Pour l'étendre au reste de la feuille, clic droit en A2>Copier, sélectionner la plage A2:I20 par exemple puis Coller. Le Copier initial peut aussi servir pour alimenter les autres feuilles.

Le fichier pour tester. La première feuille est faite en A2 uniquement. Je te laisse t'essayer au Copier/Coller :)
note : la formule ne fonctionnera pas pour la feuille Adultes car il n'y a pas d'adulte dans la colonne _Cours. Je reviendrai dessus demain parce que là j'ai pas encore fini ma journée.
A+
Pièces jointes
LISTING_Mod1.ods
(12.98 Kio) Téléchargé 15 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
 
Message(s) : 2519
Inscrit le : 16 Avr 2010 14:31

Re: Transfert automatique de ligne vers une autre feuille

Messagepar JudoCP » 15 Sep 2021 07:33

Bonjour OOotremeur971, merci pour ta réponse rapide je regarde ça en fin de journée.
Encore merci de bonne journée.
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22

Re: Transfert automatique de ligne vers une autre feuille

Messagepar OOotremer971 » 15 Sep 2021 20:45

Bonjour,

Ajout d'une formule spécifique nommée _Ventil2 pour gérer la feuille Adultes. Pour que les trois catégories adultes soient facilement repérables, j'ai modifié légèrement les formules de la colonne COURS en ajoutant un astérisque aux catégories adultes. Ainsi la formule _Ventile2, repère ces astérisques, et fait remonter les valeurs concernées. J'en ai profité pour corriger quelques incohérences dans les formules de la colonne COURS.

_VEntil2 :
Code : Tout sélectionner   AgrandirRéduire
SI(NB.SI(ESTNUM(TROUVE("*";_Cours));1)>=LIGNE()-1;INDEX(_Source;PETITE.VALEUR(SI(ESTNUM(TROUVE("*";_Cours))=1;LIGNE($A$1:$A$500);"");LIGNE($A1));COLONNE());"")

A+
Pièces jointes
LISTING_Mod2.ods
(18.29 Kio) Téléchargé 13 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
 
Message(s) : 2519
Inscrit le : 16 Avr 2010 14:31

Re: Transfert automatique de ligne vers une autre feuille

Messagepar JudoCP » 20 Sep 2021 17:17

Bonsoir Oootremeur971. MERCI BEAUCOUP, le résultat est exactement ce que je recherchai. Je vais maintenant essayer de comprendre la "logique" et me plonger dans vos explications de la première réponse.
Bonne soirée et encore merci vous m'avez fait gagner un temps énorme dans la suite de la saison sportive et dans les saisons futures.
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22

Re: [Résolu] Transfert automatique de ligne vers autre feuil

Messagepar OOotremer971 » 22 Sep 2021 00:10

Bonjour,

Fichier modifié pour afficher la ventilation sur 250 lignes pour chacune des feuilles comme demandé par MP.
@+
Pièces jointes
LISTING_Mod3.ods
(30.04 Kio) Téléchargé 21 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
 
Message(s) : 2519
Inscrit le : 16 Avr 2010 14:31

Re: [Résolu] Transfert automatique de ligne vers autre feuil

Messagepar JudoCP » 22 Sep 2021 17:25

Bonjour et merci pour l'aide tout fonctionne parfaitement.
Encore merci
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22

Re: Transfert automatique de ligne vers autre feuille

Messagepar JudoCP » 29 Sep 2021 07:52

Bonjour, je reviens vers vous car j'ai un souci. Le fichier fonctionne parfaitement. Mon problème est que je souhaiterai copier coller les 3 colonnes des feuilles éveils, pupilles, poussins, .... vers des feuilles intitulés présence-éveils, présence-pupilles, .... Mon souci est que quand je fais des copier coller soit les cellules coller sont vides, soit les copies se font dans le sens horizontales et non verticales, soit "le contenu du presse papier dépasse l'espace offert". J'ai essayer des copier coller "simples" et les collage spécial.
Est-ce la formule [Ventil] qui rend difficile le copier coller ?
Peut on également "ventiler" les 3 premieres colonnes dans de nouvelles feuilles?
Merci
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22

Re: Transfert automatique de ligne vers autre feuille

Messagepar zeguedon » 30 Sep 2021 00:44

Bonjour,
JudoCP a écrit:je souhaiterai copier coller les 3 colonnes des feuilles éveils, pupilles, poussins, .... vers des feuilles intitulés présence-éveils, présence-pupilles,

Il suffit juste d'écrire dans un cellule de la feuille présence-pupilles :
Code : Tout sélectionner   AgrandirRéduire
=pupilles.A1

puis tirer la formule avec la poignée de recopie vers la droite puis vers le bas. Bien-sur si la première valeur que tu veux récupérer est en D2, il faudra alors écrire :
Code : Tout sélectionner   AgrandirRéduire
=pupilles.D2

@+
Comment baliser [Résolu] ?
AOO 4.1.10
LibreOffice 7.1.5.2
Sous Linux & Windows 10
zeguedon
ManitOOu
ManitOOu
 
Message(s) : 2811
Inscrit le : 02 Juil 2014 18:25

Re: Transfert automatique de ligne vers autre feuille

Messagepar JudoCP » 01 Oct 2021 18:28

Super merci beaucoup. Juste une question est ce qu'il y a moyen d'intégrer 2 catégories dans la formule. Pour être plus clair peut on intégrer des colonnes de la feuille benjamins et des colonnes de la feuille minimes dans la même feuille présence benjamins-minimes.
Merci
Apache_OpenOffice_4.1.10_Win_x86_
JudoCP
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 13 Sep 2021 20:22


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 16 invité(s)