Tri d'une liste avec macro et décalage ligne complète

1

Bonjour à tous, je suis coincé avec un fichier excel que je doit créer afin de suivre des activitées réalisées.


J'ai donc ma première feuille avec les noms/niveaux de chaque personne et si il sont concernés par l'activité "CT" que je trie avec une macro.

Sur mes autres pages je récupère donc ma liste de nom triée avec la fonction =Liste!A1 puis A2 etc....

Sur mes feuilles suivantes j'ai donc la bonne liste de nom qui s'affiche, je remplis donc les dates des activités réalisées en face des noms correspondants sauf que quand je met à jour ma liste, l'ordre des noms de la liste peux changer et les dates rentrées sur les autres pages ne suivent pas les lignes avec le nom qui lui est associé.


Comment bloquer toute la ligne afin qu'elle se déplace en cas de modification de l'ordre de ma liste.

ci joint le lien cjoint afin de voir le fichier modifié sans les noms

https://www.cjoint.com/c/MGpqB2YuA3F

merci beaucoup pour votre aide


question de plus : mon tableau affiche si le niveau est de 1à6 ou 7 et posséde son stage.

je souhaiterai recupérer sous forme de tableau les gens uniquement concernés par l'activité CT

Posté le 15 juillet 2023, 18:40
Répondre
0

Bonsoir,

ton fichier en retour : https://www.cjoint.com/c/MGqsos32l20

c'est maintenant un fichier .xlsx ➯ aucun code VBA (aucune macro)

tu as vraiment tout compliqué : l'organisation de ton fichier était
vraiment très mauvaise !  :(

j'ai fait une réorganisation, avec 2 feuilles seulement.

les explications vont être très longues, donc pour ce qui va suivre,
je vais mettre un post pour chaque partie différente.

même si j'ai joint le fichier dans ce post, je t'invite à le regarder
au fur et à mesure que tu liras mes 5 prochains posts, afin de
bien tout comprendre.

rhodo

rhodo Posté le 16 juillet 2023, 20:30
par rhodo
0

1) Validation des données "NIVEAU"

quand tu ouvres le fichier, tu es sur la 2ème feuille "Niv" (abréviation de "Niveau").

il n'y a que la colonne A qui est utilisée, pour la liste des niveaux ; ça servira
pour la validation des données niveaux.

c'est un tableau structuré dont le nom est TNiv (Table des Niveaux).

avantage : si tu ajouteras plus tard d'autres niveaux dans ce tableau TNiv,
les nouveaux niveaux ajoutés seront automatiquement pris en compte
dans la liste de validation de la 1ère feuille (colonne "NIVEAU").

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ne le fais pas maintenant car c'est juste pour info : quand tu voudras ajouter
un niveau, sélectionne la dernière cellule du tableau (ici A14), appuie sur la
touche Tab (Tabulation) : ça ajoute une cellule vide qui fait partie du tableau
structuré TNiv ; dans cette cellule vide, saisis le nouveau niveau.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

attention : pour pouvoir utiliser la 1ère colonne de TNiv en tant que validation
de données, il faut lui créer un nom ; j'ai donc créé le nom LNiv (Liste des
Niveaux)
, dont la référence est : =TNiv[Niv]

fais Ctrl F3 ➯ fenêtre du gestionnaire de noms ; tu peux voir LNiv et TNiv ;
il y a aussi TActiv mais je t'en parlerai plus tard ; ne change rien dans cette
fenêtre, et appuie sur la touche Echap pour fermer la fenêtre ➯ retour sur
la feuille de calcul.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

pour cette 2ème feuille "Niv", j'ai tout expliqué ; je n'en parlerai plus.

va sur la 1ère feuille "Act" (abréviation de "Activités").

tu peux voir que j'ai transformé ton tableau initial en tableau structuré ;
son nom est TActiv (Table des Activités).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ne le fais pas maintenant car c'est juste pour info : quand tu voudras ajouter
une ligne, sélectionne la dernière cellule du tableau (ici E13), appuie sur la
touche Tab (Tabulation) : ça ajoute une ligne vide qui fait partie du tableau
structuré TActiv ; dans cette ligne vide, saisis tes infos (sauf en E14, car
ta formule y a été recopiée automatiquement : c'est un effet direct de
l'extension automatique des formules dans un tableau structuré)
 ; surtout,
fais bien attention de ne pas écraser la formule de E14 en saisissant par
erreur une donnée par dessus !

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

pour la 1ère colonne "NIVEAU", voici quelle est la validation des données
pour la plage actuelle A2:A13 : Autoriser : Liste ; Source : =LNiv

c'est quand même bien plus simple que ce que tu avais fait au départ avec :
Source : SDT;1CL;BRI;BCH;BC1;MDL;MCH;ADJ;ADC;MJR;SLT;LTN;CNE

de plus, ta façon de faire complique l'ajout ou la modification de niveaux !
alors qu'avec ma méthode, l'ajout et la modif sont automatiquement pris
en compte.  :)

rhodo

rhodo Posté le 16 juillet 2023, 21:30
par rhodo
0

2) Validation des données "stage"

ce que tu avais déjà fait était très bien, car pour une liste de 2 items seulement
"OUI" et "NON", ta Souce de validation est OK : « OUI;NON » ; cependant :

pour ta méthode, et parmi tes lignes de données 2 à 13, il y avait les 2 cellules
vides C2 et C6 ; ce n'est pas bon, car pour une ligne qui contient le nom d'une
personne,  il devrait y avoir forcément un des 2 items : "OUI" ou "NON" ; donc
pas de cellule vide !

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

j'ai supprimé ta validation des données "stage", car j'ai mieux à te proposer :
pas de validation de données, et la colonne C "stage" est une simple colonne
où une case vide signifie "NON" ; et tu saisis un simple « x » (X minuscule)
quand tu veux indiquer "OUI".

ainsi, comme actuellement il y a un « x » en C2, C7, C12, et C13, c'est très
facile de voir et de comprendre que c'est "OUI" pour aa, jkb, fbd, jnlkj ; et
c'est "NON" pour toutes les autres personnes (car la case en colonne C
qui leur correspond est vide)
.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

si vraiment tu préfères quand même ta liste de 2 items "OUI" et "NON"
plutôt que ce que j'ai fait avec des « x », je te laisse remettre ce que
tu avais fait au départ.  ;)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

note à propos de la colonne "NOM" : normalement, il ne doit pas y avoir
de cellule vide ! c'est pour ça que j'ai saisis "dd" en B6.

rhodo

rhodo Posté le 16 juillet 2023, 21:54
par rhodo
0

3) À propos de "date"

j'ai bien compris ce que tu avais demandé dans ton énoncé ; mais le plus simple est de mettre
une colonne "date" dans ton tableau initial : c'est la colonne D.

ainsi, pour chaque personne pour laquelle tu veux saisir une date, tu saisis cette date sur
la même ligne que la personne, en colonne D.

puis quand tu voudras faire un tri, tu feras ce tri sur la colonne de ton choix, et comme on est
dans un tableau structuré, les dates suivront ce tri ➯ les dates resteront en correspondance
avec les personnes.  :)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

d'abord, note bien que la date 14/07/2023 est pour la personne "aa".

sélectionne B1 ; clique sur la petite flèche bas qui est contre le bord droit de la cellule, puis
clique sur l'item "Trier de Z à A" ➯ les lignes du tableau sont triées par ordre décroissant
des noms ➯ la personne "aa" est sur la dernière ligne du tableau (ligne 13), et tu peux voir
que la date a suivi le tri vu qu'elle est en D13 (à droite de "aa") : elle n'est plus en D1.

clique sur la petite flèche bas de A1, puis clique sur l'item "Trier de Z à A" ➯ les lignes du
tableau sont triées par ordre décroissant des niveaux ➯ la personne "aa" est en ligne 4,
et tu peux voir que la date a suivi le tri vu qu'elle est en D4 (à droite de "aa").

clique sur la petite flèche bas de A1, puis clique sur l'item "Trier de A à Z" ➯ les lignes du
tableau sont triées par ordre croissant des niveaux ➯ la personne "aa" est en ligne 13,
et tu peux voir que la date a suivi le tri vu qu'elle est en D13 (à droite de "aa").

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

voici comment faire pour enlever le tri de la colonne A : clique sur le petit carré gris du bord
droit de A1, clique sur l'item "Trier par couleur" puis clique à droite sur "Tri personnalisé..."
➯ affichage d'une fenêtre dont le titre est « Tri » ; tu peux voir cette ligne :

« Trier par NIVEAU ; Valeurs de cellule ; De A à Z »

clique sur le texte « Trier par » ➯ la ligne du tri est sélectionnée ; un peu plus haut, clique
sur le bouton « Supprimer un niveau » ➯ ça supprime la ligne de tri de la fenêtre ; puis
clique en bas sur le bouton "OK" ; c'est fait !  :)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

remarque : je suppose que la date est une date de stage ; si oui, alors en principe, tu dois
saisir une date de stage seulement si tu as mis un « x » en colonne C.

et donc pour compléter ton tableau, tu dois saisir une date de stage en D7, D12, et D13
(c'est-à-dire juste à droite des 3 autres « x »).

rhodo

rhodo Posté le 16 juillet 2023, 22:18
par rhodo
0

4) À propos de "Concerné CT"

si tu veux voir uniquement les gens concernés par l'activité CT, il te suffit d'utiliser le filtre !  ;)
voici comment faire :

sélectionne E1 ; clique sur la petite flèche bas qui est contre le bord droit de la cellule ; en bas :
décoche "(Sélectionner tout)", coche "CT", puis clique sur le bouton "OK" : c'est fait !  :)

en effet, tu vois uniquement les lignes avec CT ; mais ne crains rien : les autres lignes n'ont
pas été supprimées : elles sont simplement masquées.

pour voir de nouveau toutes les lignes du tableau : regarde le bord droit de E1 : la petite flèche
bas s'est transformée en petit entonnoir ; ça indique qu'un filtre est actuellement appliqué sur
cette colonne ; c'est normal, puisqu'on vient de faire un filtre sur "CT" ; clique sur ce petit
entonnoir ; en bas, clique sur la case à cocher qui est à gauche du texte "(Sélectionner tout)"
puis clique sur le bouton "OK" : c'est fait, tu vois de nouveau toutes les lignes du tableau ;
et bien sûr, le petit entonnoir est redevenu une flèche bas : il n'y a plus de filtre pour la
colonne E "Concerné CT".

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

bien sûr tu peux utiliser le même genre de méthode de filtrage pour d'autres colonnes ;
par exemple si tu veux voir uniquement les personnes qui sont en stage :

clique sur la petite flèche bas de la cellule C1 ; en bas : décoche "(Sélectionner tout)",
coche "x", puis clique sur le bouton "OK" : c'est fait !  :)  tu vois uniquement 4 lignes,
celles des personnes aa, jkb, fbd, jnlkj.

si au contraire tu veux voir uniquement les personnes qui ne sont pas en stage :
clique sur la petite flèche bas de la cellule C1 ; en bas : décoche "(Sélectionner tout)",
coche "(Vides)", puis clique sur le bouton "OK" : c'est fait !  :)  tu vois 8 lignes, celles
des personnes momo, dd, fdb, mkf, jkb, dbfb, yyg, toto.

pour voir de nouveau toutes les lignes du tableau : clique sur le petit entonnoir de C1 ;
en bas, clique sur la case à cocher de "(Sélectionner tout)" puis clique sur "OK".  :)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

autre exemple : si tu veux voir uniquement les personnes dont le niveau est "BRI" :
clique sur la petite flèche bas de A1 ; en bas : décoche "(Sélectionner tout)",
coche "BRI", puis clique sur "OK" : tu vois uniquement les 3 lignes des personnes
jkb, jkb, mkf ; tu sais comment faire pour voir de nouveau toutes les lignes.  ;)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

tu peux filtrer le tableau sur plus d'une colonne ; par exemple si tu veux voir uniquement
les personnes dont le niveau est "SDT" ET qui sont en stage ; il faut mettre un filtre pour
la colonne A ET pour la colonne C :

clique sur la petite flèche bas de A1 ; en bas : décoche "(Sélectionner tout)", coche "SDT",
puis clique sur "OK" : tu vois uniquement les 3 lignes des personnes yyg, toto, aa ; clique
sur la petite flèche bas de C1 ; en bas : décoche "(Sélectionner tout)", coche "x", puis
clique sur "OK" : tu vois une seule ligne, celle de aa, car elle seule est à la fois de niveau
"SDT" ET en stage.

attention : pour voir de nouveau toutes les lignes, il faut cocher l'item "(Sélectionner tout)"
pour A1 ET pour C1 ; autre solution, qui est plus pratique : il faut d'abord sélectionner une
cellule du tableau structuré (n'importe laquelle, dans la ligne d'en-têtes ou dans la ligne
des données)
 ; sélectionne par exemple B13 (où il y a "aa") ; ensuite ; onglet "Données",
rubrique "Trier et filtrer", clique sur l'item "Effacer" (entonnoir avec une croix rouge).

tu aurais pu utiliser cette autre façon : au lieu de cliquer sur l'item "Effacer", tu aurais pu
cliquer juste à gauche sur l'item "Filtrer" ➯ on voit de nouveau toutes les lignes du tableau,
mais sur la ligne d'en-têtes, on ne voit plus les petites flèches bas ; le tableau est toujours
un tableau structuré ; il faut juste recliquer sur l'item "Filtrer" pour faire réapparaître les
petites flèche bas.

rhodo

rhodo Posté le 16 juillet 2023, 22:56
par rhodo
0

5) À propos de la version d'Excel

dans tous mes posts, c'est selon la version d'Excel que j'utilise, et j'ai Office 2021 ;
si tu as une autre version, il faudra que tu y trouves ce qu'il faut.  ;)

c'est valable en particulier pour ce qui concerne le tri ou les filtres ; même si tu as
une version d'Office plus ancienne que la 2021, je pense que tu y trouveras ce
qui est nécessaire : il faut juste trouver la bonne correspondance.

pour info, les tableaux structurés existent à partir d'Excel 2007 ; de plus, comme
ton fichier était un fichier .xlsm, je sais que tu as au minimum Excel 2007.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

tout c'que j'ai écrit est très long à lire, mais j'espère quand même que ça t'aura plu ;
à te lire pour avoir ton avis.  :)  (si tu as des questions, n'hésite pas ; mais pense
à indiquer quelle est TA version d'Excel)

rhodo

rhodo Posté le 17 juillet 2023, 02:36
par rhodo

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :