Trier à l'aide d'une macro

Résolu/Fermé
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 - 5 févr. 2016 à 17:44
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 - 6 févr. 2016 à 15:48
Salut les amis
j'ai une grande tache a traiter il s'agit de préparer 22 fichiers concernat les liste des élèves qui vont bénéficier du soutien pendant le 2 eme semestre dans les matières suivantes : math ; langue arabe et langue française chaque liste doit contenir les noms et les moyennes des élèves ayant une moyenne inférieure strictement à 5
la liste des élèves et les moyenne se trouvent dans la feuille " semestre " je veux les extraire les listes dans la feuille " soutien " par une macro
le classeur se trouve dans l'adresse ci-dessous
http://www.cjoint.com/c/FBfqC0hdqjP
merci infiniment

A voir également:

4 réponses

Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
5 févr. 2016 à 18:41
Bonjour,

Le code suivant devrait répondre à votre demande :

Sub ElevesEnSoutien()

Dim DernLigne As Long
DernLigne = Sheets("semestre").Range("B" & Rows.Count).End(xlUp).Row
m = 6 'début de collage pour soutien


For i = 5 To DernLigne

'Français
Sheets("semestre").Select
If Range("AI" & i).Value >= 5 Then
Else

'Nom français
Sheets("semestre").Select
Range("B" & i).Select
Selection.Copy
Sheets("soutien").Select
Range("L" & m & ":M" & m).Select
ActiveSheet.Paste

'Moyenne français
Sheets("semestre").Select
Range("AI" & i).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("soutien").Select
Range("N" & m & ":O" & m).Select
ActiveSheet.Paste

End If 'Fin Français

'Maths
Sheets("semestre").Select
If Range("X" & i).Value >= 5 Then
Else

'Nom Maths
Sheets("semestre").Select
Range("B" & i).Select
Selection.Copy
Sheets("soutien").Select
Range("H" & m & ":I" & m).Select
ActiveSheet.Paste

'Moyenne Maths
Sheets("semestre").Select
Range("X" & i).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("soutien").Select
Range("J" & m & ":K" & m).Select
ActiveSheet.Paste

End If 'Fin Maths


'Arabe
Sheets("semestre").Select
If Range("P" & i).Value >= 5 Then
Else

'Nom Arabe
Sheets("semestre").Select
Range("B" & i).Select
Selection.Copy
Sheets("soutien").Select
Range("D" & m & ":E" & m).Select
ActiveSheet.Paste

'Moyenne arabe
Sheets("semestre").Select
Range("P" & i).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("soutien").Select
Range("F" & m & ":G" & m).Select
ActiveSheet.Paste

End If 'Fin Arabe

Sheets("semestre").Select
If Range("AI" & i).Value < 5 Or Range("X" & i).Value < 5 Or Range("P" & i).Value < 5 Then
m = m + 1
End If

Next i

End Sub
0
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 4
5 févr. 2016 à 19:21
Elle est efficace mais elle prend un certain temps
si vous ne trouvez pas de macro guidez moi par une formule
merci
0
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 4
6 févr. 2016 à 09:06
m
Même si vous trouvez une formule qui pourra faire la même chose faites moi signe
cordialement
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 6/02/2016 à 11:28
Bonjour a vous deux,

Theo.R:
les selects et activate sont a eviter car tres goumands en temps d'execution

neo2008: trois fichiers

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

celui de Theo.R avec son temps d'execution
et deux autres avec temps d'execution qui peut etre ameliore un peu si vous trouvez que c'est encore trop long

le premier meme classement que Theo.R
le deuxieme un classement par matiere que je trouve plus logique

A vous de voir
0
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 4
6 févr. 2016 à 14:28
oui elle marche bien mais est il possible qu'il n'aura plus de cellules vides
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 févr. 2016 à 14:35
Re,
"Plus de cellules vides". Que voulez-vous dire????????
0
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 4 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
6 févr. 2016 à 14:50
oui merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023
6 févr. 2016 à 14:56
Re,

Mais encore .......
0
noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023 4
6 févr. 2016 à 15:08
Par exemple entre entre eleveA et eleveB il ya des cellules vides car les noms d’élèves correspondants ont une moyenne sup à 5
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > noe2008 Messages postés 183 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 9 novembre 2023
Modifié par f894009 le 6/02/2016 à 15:36
Re,

Si vous prenez le fichier notes-des-eleves_2.xlsm le tri n'est pas le meme, donc regardez!!

Relisez ce que j'ai ecrit f894009 6 févr. 2016 à 11:28
0