Effectifs de classe sur plusieurs feuilles
Résolu/Fermé
maxime2935
-
8 sept. 2021 à 11:16
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 1 sept. 2022 à 09:07
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 1 sept. 2022 à 09:07
A voir également:
- Effectifs de classe sur plusieurs feuilles
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Fusionner plusieurs feuilles excel en une seule - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment supprimer une feuille sur word - Guide
8 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 8 sept. 2021 à 11:55
Modifié le 8 sept. 2021 à 11:55
Bonjour,
a mettre dans un module et associer à un bouton ou un raccourci clavier
-
-
@+ Le Pivert
a mettre dans un module et associer à un bouton ou un raccourci clavier
Option Explicit Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim DerniereLigneUtilisee As Long Set FL1 = Worksheets("Feuil1") NoCol = 2 'lecture de la colonne B For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) Select Case Var Case Is = "CP" DerniereLigneUtilisee = Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":C" & NoLig).Copy _ Destination:=Worksheets("Feuil2").Range("A" & DerniereLigneUtilisee) Case Is = "CE1" DerniereLigneUtilisee = Worksheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":C" & NoLig).Copy _ Destination:=Worksheets("Feuil3").Range("A" & DerniereLigneUtilisee) Case Is = "CE2" DerniereLigneUtilisee = Worksheets("Feuil4").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":C" & NoLig).Copy _ Destination:=Worksheets("Feuil4").Range("A" & DerniereLigneUtilisee) End Select Next Set FL1 = Nothing End Sub
-
-
@+ Le Pivert
M-12
Messages postés
1331
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
8 avril 2023
284
8 sept. 2021 à 12:04
8 sept. 2021 à 12:04
Bonjour,
Un exemple à mettre à ta sauce
https://www.cjoint.com/c/KIikevCCyRK
Un exemple à mettre à ta sauce
https://www.cjoint.com/c/KIikevCCyRK
Bonjour et merci pour ta réponse. Ca marche super bien.
Par contre, si je veux ajouter d'autres colonnes pour rentrer d'autres données, comment faire pour qu'elles soient aussi prises en compte dans les feuilles?
Et est-il possible de faire en sorte que, dans les feuilles, les élèves soient triés dans l'ordre alphabétique de leur adresse?
Par ailleurs, quand j'ouvre le développeur, je ne vois que les macros qui concernent les CE2. Je ne vois pas ce qu'il faut faire pour voir les autres?
Merci et bonne journée!
Par contre, si je veux ajouter d'autres colonnes pour rentrer d'autres données, comment faire pour qu'elles soient aussi prises en compte dans les feuilles?
Et est-il possible de faire en sorte que, dans les feuilles, les élèves soient triés dans l'ordre alphabétique de leur adresse?
Par ailleurs, quand j'ouvre le développeur, je ne vois que les macros qui concernent les CE2. Je ne vois pas ce qu'il faut faire pour voir les autres?
Merci et bonne journée!
M-12
Messages postés
1331
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
8 avril 2023
284
Modifié le 8 sept. 2021 à 13:55
Modifié le 8 sept. 2021 à 13:55
Peut-être savoir à qui tu réponds?
et de plus placer un classeur exemple ressemblant à l'original avec données non confidentielles
et de plus placer un classeur exemple ressemblant à l'original avec données non confidentielles
C'était bien à toi M-12 que je répondais. ;)
Encore merci.
Je te rejoins mon fichier complet (j'ai enlevé les données confidentielles) :
https://www.cjoint.com/c/KIimO4Pm07c
J'aimerais qu'on mette dans la feuille 2 (1CA) tous les élèves qui ont niveau "1CA" de la colonne H. Feuille 3 (1CB), ceux de 1CB, etc... jusque 2CF. Et en les triant par ordre alphabétique du nom de famille à chaque fois.
Ensuite, j'aimerais qu'on mette dans la feuille "flûte" tous les élèves qui sont inscrits en "flûte" de la colonne (I), puis tous ceux de saxophone dans la feuille "saxophone", etc... Et en les triant par ordre de niveau (colonne J).
Voilà exactement ce que j'attends... Désolé d'avoir fait en plusieurs fois, mais je pensais que ce serait plus simple........
Bonne journée
Encore merci.
Je te rejoins mon fichier complet (j'ai enlevé les données confidentielles) :
https://www.cjoint.com/c/KIimO4Pm07c
J'aimerais qu'on mette dans la feuille 2 (1CA) tous les élèves qui ont niveau "1CA" de la colonne H. Feuille 3 (1CB), ceux de 1CB, etc... jusque 2CF. Et en les triant par ordre alphabétique du nom de famille à chaque fois.
Ensuite, j'aimerais qu'on mette dans la feuille "flûte" tous les élèves qui sont inscrits en "flûte" de la colonne (I), puis tous ceux de saxophone dans la feuille "saxophone", etc... Et en les triant par ordre de niveau (colonne J).
Voilà exactement ce que j'attends... Désolé d'avoir fait en plusieurs fois, mais je pensais que ce serait plus simple........
Bonne journée
Merci pour vos réponse.
Je vous rejoins mon fichier complet (j'ai enlevé les données confidentielles) :
https://www.cjoint.com/c/KIimO4Pm07c
J'aimerais qu'on mette dans la feuille 2 ("1CA") tous les élèves qui ont niveau "1CA" de la colonne H notés sur la feuille 1 ("global"). Sur la feuille 3 ("1CB"), ceux de 1CB, etc... jusque 2CF. Et en les triant par ordre alphabétique du nom de famille à chaque fois.
Ensuite, j'aimerais qu'on mette dans la feuille "flûte" tous les élèves qui sont inscrits en "flûte" de la colonne I de la feuille 1 ("global"), puis tous ceux de saxophone dans la feuille "saxophone", etc... Et en les triant par ordre de niveau (colonne J).
Voilà exactement ce que j'attends... Désolé d'avoir fait en plusieurs fois, mais je pensais que ce serait plus simple........
Merci par avance pour votre aide......! Je galère!!!!!!!
Bonne journée
Je vous rejoins mon fichier complet (j'ai enlevé les données confidentielles) :
https://www.cjoint.com/c/KIimO4Pm07c
J'aimerais qu'on mette dans la feuille 2 ("1CA") tous les élèves qui ont niveau "1CA" de la colonne H notés sur la feuille 1 ("global"). Sur la feuille 3 ("1CB"), ceux de 1CB, etc... jusque 2CF. Et en les triant par ordre alphabétique du nom de famille à chaque fois.
Ensuite, j'aimerais qu'on mette dans la feuille "flûte" tous les élèves qui sont inscrits en "flûte" de la colonne I de la feuille 1 ("global"), puis tous ceux de saxophone dans la feuille "saxophone", etc... Et en les triant par ordre de niveau (colonne J).
Voilà exactement ce que j'attends... Désolé d'avoir fait en plusieurs fois, mais je pensais que ce serait plus simple........
Merci par avance pour votre aide......! Je galère!!!!!!!
Bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Toujours personne pour m'aider..... :(
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 9 sept. 2021 à 16:18
Modifié le 9 sept. 2021 à 16:18
Je t'avais donné une base de travail, mais cela n'a pas eu l'air de t'intéresser!
je retente la chose avec les classes. Il te suffira de l'adapter pour les instruments de musique
a mettre dans un module:
a associer à un bouton ou un raccourci clavier
nb changer A3 en A2 dans le tri
nb changer For NoLig = 2 en For NoLig = 3 dans boucleclasse
@+ Le Pivert
je retente la chose avec les classes. Il te suffira de l'adapter pour les instruments de musique
a mettre dans un module:
Option Explicit Sub boucleclasse() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim DerniereLigneUtilisee As Long Set FL1 = Worksheets("GLOBAL") NoCol = 8 'lecture de la colonne H For NoLig = 3 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) Select Case Var Case Is = "1CA" DerniereLigneUtilisee = Worksheets("FM1CA").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM1CA").Range("A" & DerniereLigneUtilisee) Case Is = "1CB" DerniereLigneUtilisee = Worksheets("FM1CB").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM1CB").Range("A" & DerniereLigneUtilisee) Case Is = "1CC" DerniereLigneUtilisee = Worksheets("FM1CC").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM1CC").Range("A" & DerniereLigneUtilisee) Case Is = "1CF" DerniereLigneUtilisee = Worksheets("FM1CF").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM1CF").Range("A" & DerniereLigneUtilisee) Case Is = "2CA" DerniereLigneUtilisee = Worksheets("FM2CA").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM2CA").Range("A" & DerniereLigneUtilisee) Case Is = "2CB" DerniereLigneUtilisee = Worksheets("FM2CB").Range("A" & Rows.Count).End(xlUp).Row + 1 FL1.Range("A" & NoLig & ":AR" & NoLig).Copy _ Destination:=Worksheets("FM2CB").Range("A" & DerniereLigneUtilisee) End Select Next Set FL1 = Nothing tri ("FM1CA") tri ("FM1CB") tri ("FM1CC") tri ("FM1CF") tri ("FM2CA") tri ("FM2CB") End Sub Sub tri(ByVal feuille As String) ActiveWorkbook.Worksheets(feuille).Sort.SortFields.Clear ActiveWorkbook.Worksheets(feuille).Sort.SortFields.Add Key:=Range("A2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(feuille).Sort .SetRange Range("A2:AR82") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
a associer à un bouton ou un raccourci clavier
nb changer A3 en A2 dans le tri
nb changer For NoLig = 2 en For NoLig = 3 dans boucleclasse
@+ Le Pivert
Un grand MERCI!!! "Le Pivert" pour ton aide et ta réponse.
Ca marche super bien!! Et j'ai fait pareil pour les instruments, c'est top.
Par contre, il y a 4 choses que je ne comprends pas bien :
1) que signifient tes 2 "nb" que tu as mis à la fin de ton précédent message? Dans quel but il faudrait changer les A3 en A2 et NoLig?
2) Actuellement, pour mes instruments, le tri se fait par ordre alphabétique de nom de famille (donc colonne A). Comment faire pour qu'il se fasse par ordre de niveau (c'est à dire avec la colonne J?).
3) Comment faire pour qu'à chaque fois que je lance la macro, il remplace les données d'avant par les nouvelles (actuellement, il les re-créée, et ça fait des doublons).
4) As-tu un lien qui permet d'expliquer comment ajouter un bouton raccourci clavier?
Merci encore et bonne soirée!
Ca marche super bien!! Et j'ai fait pareil pour les instruments, c'est top.
Par contre, il y a 4 choses que je ne comprends pas bien :
1) que signifient tes 2 "nb" que tu as mis à la fin de ton précédent message? Dans quel but il faudrait changer les A3 en A2 et NoLig?
2) Actuellement, pour mes instruments, le tri se fait par ordre alphabétique de nom de famille (donc colonne A). Comment faire pour qu'il se fasse par ordre de niveau (c'est à dire avec la colonne J?).
3) Comment faire pour qu'à chaque fois que je lance la macro, il remplace les données d'avant par les nouvelles (actuellement, il les re-créée, et ça fait des doublons).
4) As-tu un lien qui permet d'expliquer comment ajouter un bouton raccourci clavier?
Merci encore et bonne soirée!
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
9 sept. 2021 à 18:41
9 sept. 2021 à 18:41
questions
pour la 1 ne pas en tenir compte, j'ai rectifié le code sur ce post
pour la 2 dans la macro tri, changer "A2" par "J2"
pour la 3 mettre ceci:
et au début de la macro boucleclasse ceci:
et enfin la 4 voir ceci:
https://fr.extendoffice.com/documents/excel/5102-excel-assign-hotkey-to-macro.html
Bon courage
@+ Le Pivert
pour la 1 ne pas en tenir compte, j'ai rectifié le code sur ce post
pour la 2 dans la macro tri, changer "A2" par "J2"
pour la 3 mettre ceci:
Sub reinitialiser(ByVal feuille As String) Worksheets(feuille).Range("A2:AR82").ClearContents End Sub
et au début de la macro boucleclasse ceci:
Sub boucleclasse() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim DerniereLigneUtilisee As Long Set FL1 = Worksheets("GLOBAL") NoCol = 8 'lecture de la colonne H reinitialiser ("FM1CA") reinitialiser ("FM1CB") reinitialiser ("FM1CC") reinitialiser ("FM1CF") reinitialiser ("FM2CA") reinitialiser ("FM2CB") For NoLig = 3 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) 'et la suite
et enfin la 4 voir ceci:
https://fr.extendoffice.com/documents/excel/5102-excel-assign-hotkey-to-macro.html
Bon courage
@+ Le Pivert
Bonjour à tous,
Bonjour à tous,
Je me sers super bien du code que vous m'aviez donné l'an passé, c'est super! J'arrive même à faire quelques modifs, c'est top!
Par contre, je suis bloqué sur un point : à la fin de ma feuille "GLOBAL", il y a des lignes que je n'ai pas envie que la macro prenne en compte pour dispatcher les élèves dans les autres feuilles. J'aimerais que la macro fasse son boulot que des lignes 3 à 110, et là, il me prend tout le document. Comment faire?
Je mets en pièce jointe le document, mais sans les noms bien sûr.
Merci d'avance pour votre aide!
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
1 sept. 2022 à 09:07
1 sept. 2022 à 09:07
Bonjour,
remplacer For NoLig = 3 To Split(FL1.UsedRange.Address, "$")(4) par For NoLig = 3 To 110
@+ Le Pivert
8 sept. 2021 à 13:47
Merci pour ta réponse,
mais rien ne se passe quand je lance le code... :(
Bonne journée
8 sept. 2021 à 14:27