Pb de décalage de report d'une feuille sur une autre
Bonjour
Je me trouve face à un problème que je n'arrive pas à résoudre.
Le fichier de gestion de l'association est composé de plusieurs onglets. Sur le premier '1-Adhérents' sont notées les coordonnées des adhérents et sur le 2ème '2-Sections' sont notées leurs adhésions aux différentes sections.
Afin d'éviter d'oublier, le fait de noter 'Oui' dans la colonne A de l'onglet '1-Adhérents' recopie automatiquement les 'N°Adh', 'Nom' et 'Prénom' dans l'onglet 'Sections'. Et ensuite on note dans '2-Sections' dans quelles sections ils sont inscrits.
Mon problème est comme j'ai créé une macro 'Tri_Alpha' pour repérer plus facilement si les personnes sont déjà inscrites, cela génère un décalage dans '2-Sections' car les colonnes X à BK de cet onglet sont figées car saisies sur place alors que les noms sont par ordre alpha.
Comment peut-on effectuer cette opération en décalant les lignes en fonction du tri alpha et en gardant la saisie des sections en face des bonnes personnes ?
Toute proposition sera la bienvenue.
Cordialement
MARDEL
Bonjour,
Une proposition pour retrouver le lien entre le numéro d'adhésion et le fait d'être inscrit ou non sans passer par un lien direct de renvoi de cellule, en T9 de la feuille section à valider en matricielle via la combinaison des touches CTRL + SHIFT + ENTER, puis à tirer vers le bas :
=INDEX('1-Adhérents'!$B$1:$B$100;PETITE.VALEUR(SI('1-Adhérents'!$A$1:$A$100="OUI";LIGNE('1-Adhérents'!$A$1:$A$100);"");LIGNE('2-Sections'!S1)))Par la suite, les colonnes U et V doivent être renvoyée via une RECHERCHEV par exemple :
=RECHERCHEV(T9;'1-Adhérents'!$B$9:$D$93;2;FAUX) 'En U9 puis en tirant vers le bas
=RECHERCHEV(T9;'1-Adhérents'!$B$9:$D$93;3;FAUX) 'En V9 puis en tirant vers le basAinsi tout se fait par rapport au numéro d'adhérent de la feuille 2 par l'intermédiaire de la RECHERCHEV et non plus en lien direct entre des cellules sensibles au tri.
A voir si cela résout votre problématique. La plage est à proportionner à votre tableau (ici ligne 100 mais n'incluez pas trop de lignes si vous n'en avez pas l'utilité).
Cdlt,
Merci Ergotamine
Si je recopie la formule proposée, en B9 de l'onglet 2 elle me reporte '1-Liste des Adhérents'.
Si je la modifie en :
=INDEX('1-Adhérents'!$B$9:$B$100;PETITE.VALEUR(SI('1-Adhérents'!$A$1:$A$100="OUI";LIGNE('1-Adhérents'!$A$1:$A$100);"");LIGNE('2-Sections'!S1)))
le report est bien 'Adh-054' mais problème lorsque je la copie vers le bas.
Je ne comprend pas le renvoi à S1
LIGNE('2-Sections'!S1)
Par ailleurs pas de souci avec le RechercheV.
Merci encore
Bonjour,
Laissez la formule comme expliquée et validée là via CTRL + SHIFT + ENTER avant de la recopier vers le bas. En T9 :
=INDEX('1-Adhérents'!$B$1:$B$100;PETITE.VALEUR(SI('1-Adhérents'!$A$1:$A$100="OUI";LIGNE('1-Adhérents'!$A$1:$A$100);"");LIGNE('2-Sections'!S1)))C'est une formule matricielle qui nécessite ce type de validation. Si elle est bien validée vous devez avoir des accolades de chaque côté de la formule qui se sont ajoutés. Si elle n'est pas validée de cette sorte alors les données ne seront pas justes.
La petite valeur renvoie en T9 la premiière ligne ayant OUI dans la feuille 1, l'index renvoie le numéro d'adhérent correspondant. L'argument LIGNE me permet juste de me renvoyer en T9 la plus petite valeur de ligne (donc le 1er OUI) car le résultat de LIGNE(S1) est 1. Quand vous allez tirer, cet argument passera a S2 en T10, ce qui me donne 2, donc la 2ème plus petite valeur contenant OUI dans la feuille 1, etc etc ...
Cdlt,
Oups !!
Le monsieur a bien lu mais, une fois arrivé sur son fichier, il n'a pas appliqué ...
Il sera fouetté en place publique et il n'aura pas le bac (comme il ne l'a jamais eu d'ailleurs!!)
Cette fois-ci j'ai appliqué avec les {} mais ça ne règle pas mon problème qui est de décaler les lignes en même temps que les noms.
Exemple joint : créé 'Nouvel adhérent' + tri alpha qui est remonté en ligne 10 mais qui n'a pas décalé les sections de X à BK ce qui fait que lui a les sections de la personne de la ligne 11 (alors qu'on n'a encore rien saisi pour lui) et les adhérents ayant été décalés le dernier se retrouve sans sections (donc noté 'à saisir')
L'ai-je bien expliqué ?
Question subsidiaire : avec la formule matricielle en colonne T peut-on utiliser en T95 une formule du style =SI(S95=0;"";'+formule matricielle') afin que la colonne T soit vide si S est vide (ou égale à 0).
Bonjour
J'ai résolu le problème différemment : dans l'onglet 2-Sections j'ai figé les N° d'adhérents en colonne T et j'utiliser RECHERCHEV() pour aller chercher les colonnes S - U et V à partir du N°Adh.
Par contre dans cet onglet lorsque je veux classer par ordre alpha ce sont les lignes vides qui apparaissent en premier et ma liste est en fin.
Il doit y avoir un truc mais j'ai beau le tourner dans tous les sens je ne vois pas.
Si quelqu'un a une solution...
Bonjour,
Je n'ai pas compris ce qui clochait dans votre avant dernier message. Lorsque je tri par ordre alphabétique manuellement les noms j'ai bien ces derniers triés, avec les valeurs des colonnes X à BK qui suivent.
Pour votre seconde question, sur le filtre, décochez les lignes vides puis ensuite seulement appliquez le tri qui ne s'effectue que sur les lignes visibles.
Cdlt,
Merci Ergotamine
Sur le fichier ci-joint, avec la formule que vous m'avez indiquée, j'ai créé un 'Nouvel adhérent' sur l'onglet 1-Adhésions puis j'ai classé cet onglet par ordre alpha : pas de souci.
Ensuite sur l'onglet 2-Sections j'ai retrouvé mon 'Nouvel adhérent' en ligne 10. Les lignes des colonnes S à W se sont bien décalées vers le bas mais les colonnes X à BK ne se sont décalées vers le bas et mon 'Nouvel adhérent' se trouve avec des données dans ces colonnes alors que je n'ai rien saisi pour lui alors que l'adhérent 038 XUROUYN Franck a la mention 'à saisir' qui devrait être en face de 'Nouvel adhérent'.
Je joins le fichier d'hier modifié.
OK pour la solution pour le filtre : ça fonctionne mais je trouve que c'est bizarre d'être obligé de décocher les lignes vides avant de trier.
Merci encore
Bonjour,
J'ai réussi à reproduire merci pour vos explications. En fait je pense que ma solution n'est pas adaptée .. Même si un OUI passe à NON en colonne A de la feuille 1 vous vous trouverez avec un décalage car vous avez une partie manuelle (X à BK) et une automatique (A à Y), qui peuvent varier d'une feuille à l'autre.
Une question me vient cependant à l'esprit : pourquoi travailler sur un multi feuille alors qu'avoir toutes les informations au même endroit éviterai ce genre de problématique ? Car là même si vous pensez à inscrire votre numéro d'adhérent manuellement, si un jour il n'y est plus, allez vous pensez à mettre son statut à jour sur 2 feuilles ? Je pense que votre gestion en serait largement simplifiée, un filtre sur la colonne A sur les OUI et le tour est joué pour avoir toutes les informations. S'il y a trop de colonnes il est possible de jouer sur le groupage/dissociage/plan de colonnes (par exemple un groupe information générale et un pour le détail).
Pour le tri c'est malheureusement comme ça. Normalement lorsqu'on tri une plage elle n'est pas censée être vierge (on adapte le filtre à la plage de cellules non vides).
Cdlt,
J'avais fait un premier fichier avec un seul onglet avec tous les éléments mais c'était pénible car très long en largeur.
C'est pourquoi j'ai préféré 2 onglets du style 1 les clients et 2 les ventes.
J'aurais préféré utiliser Access pour le faire sous forme de base de données mais je n'y connais rien en BDD.
Je ne pense pas avoir de problème avec les N°Adh car la liste est figée et sera protégée comme beaucoup d'autres zones.
Merci encore pour vos explications.