XL 2013 Classement par ordre de merite

ATHE RIOVELI

XLDnaute Occasionnel
BONJOUR A TOUS.
Avant de présenter mes soucis, je souhaiterai avant tout exprimer mon profond respect à tous les membres du forum.
Mon soucis actuel,
je souhaite créer un fichier qui me permette de faire un classement automatique en fonction de la note du devoir.
Bien sure il doit y avoir insertion automatique de ligne dès qu'on entre un nom (les effectifs parfois vont au déla de 120 élèves par classe)
je souhaite que les élèves ayant obtenu la moyenne et ceux qui n'ont pas obtenu la moyenne soit séparer d'une ligne vierge.(exactement comme comme le présente le fichier 1
Voici joint joint les fichiers.
 

Pièces jointes

  • Classement par ordre de mérite.xlsx
    10.7 KB · Affichages: 157
  • fichier 1.xlsx
    40.2 KB · Affichages: 114
  • Classement par ordre de mérite.xlsx
    10.7 KB · Affichages: 105
  • fichier 1.xlsx
    40.2 KB · Affichages: 194

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Bonjour ATHE RIOVELI,

Apparemment il s'agit du même projet que pour vos 2 discussions précédentes, alors pourquoi ne pas continuer sur les mêmes fichiers ?

Par ailleurs vos tableaux étaient organisés en tableaux Excel, il ne faut surtout pas y introduire une ligne vide en plein milieu !!!

Voyez les fichiers joints qui sont la suite logique des précédents.

Le code modifié dans la feuille "BILAN ANNUEL" :

Code:
'---restitution, tri, ligne de séparation---
[MOYENNE_GENERALE].EntireRow.Resize(UBound(tablo)).Insert
br(2, 2).Resize(UBound(tablo), ncol) = tablo
br.Resize(UBound(tablo) + 1).Sort br(1, 28), xlDescending, Header:=xlYes 'tri sur les moyennes annuelles
For i = 2 To UBound(tablo) + 1
  If br(i, 28) >= 10 And br(i + 1, 28) < 10 Then
    With br.Rows(i).Borders(xlEdgeBottom)
      .Weight = xlThick
      .ColorIndex = 3 'rouge
    End With
    Exit For
  End If
Next i
End Sub
A+
 

Pièces jointes

  • CALCUL MOY noms effacés non supprimés(4).xlsm
    80 KB · Affichages: 78
  • CALCUL MOY noms effacés supprimés(4).xlsm
    80.9 KB · Affichages: 66

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Re,

Bien comprendre que la ligne de séparation des moyennes n'a de sens que dans la feuille "BILAN ANNUEL".

En effet on n'y entre aucune donnée manuellement et à l'activation le tri est toujours fait sur les moyennes.

Dans les feuilles des trimestres c'est l'inverse : on peut faire le tri sur n'importe quelle colonne par la commande DONNÉES-Trier.

A+
 

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Bonjour ATHE RIOVELI, le forum,

Deux compléments nettement plus importants pour la feuille "BILAN ANNUEL".

1) Elle est maintenant protégée, avec ce code dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
Sheets("BILAN ANNUEL").Protect "TOTO", UserInterfaceOnly:=True
Me.Saved = True 'évite l'invite à la fermeture
End Sub
La cellule AD12 doit être déverrouillée pour qu'on puisse entrer les décisions.

2) Les décisions sont mémorisées et restituées lors de l'activation :

Code:
'---mémorise les décisions---
If Target.Column <> 30 Then Exit Sub
ThisWorkbook.Names.Add "ELEVES", ListObjects(1).Range.Columns(2).Value
ThisWorkbook.Names.Add "DECISION", ListObjects(1).Range.Columns(30).Formula

'---restitution des décisions mémorisées---
If IsError([ELEVES]) Then Exit Sub
a = br(1, 2).Resize(UBound(tablo) + 1)
ReDim tablo(1 To UBound(a), 1 To 1)
For i = 2 To UBound(a)
  lig = Application.Match(a(i, 1), [ELEVES], 0)
  If IsNumeric(lig) Then tablo(i, 1) = Application.Index([DECISION], lig, 1)
Next
br(1, 30).Resize(UBound(a), 1) = tablo
Fichiers (5).

A+
 

Pièces jointes

  • CALCUL MOY noms effacés supprimés(5).xlsm
    83.2 KB · Affichages: 54
  • CALCUL MOY noms effacés non supprimés(5).xlsm
    79.6 KB · Affichages: 49
Dernière édition:

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Bonjour ATHE RIOVELI, le forum,

Je reviens au tri et à la ligne de séparation, cette fois pour les trimestres.

Le double-clic lance cette macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.ListObjects.Count = 0 Or Not LCase(Sh.Name) Like "#*trim*" Then Exit Sub
Dim br As Range, i&
Set br = Sh.ListObjects(1).DataBodyRange
If Intersect(Target, br, Sh.[C:S,V:V]) Is Nothing Then
  If br.Interior.Color = 0 Then Cancel = True: br(1, 3) = ""
Else
  Cancel = True
  br(1, 3) = "" 'lance la Worksheet_Change pour effacer la mise en forme
  br.Sort Target, xlDescending, Header:=xlYes 'tri
  With Intersect(br, Target.EntireColumn)
    .Interior.ColorIndex = 6 'jaune
    For i = 2 To .Count - 1
      If .Cells(i) >= 10 And .Cells(i + 1) < 10 Then
       With br.Rows(i).Borders(xlEdgeBottom)
          .Weight = xlThick
          .ColorIndex = 3 'rouge
        End With
        Exit For
      End If
    Next
  End With
End If
End Sub
Les colonnes de notes ou de moyennes sont triées et colorées.

La mise en forme est ensuite effacée par ce code dans les Worksheet_Change :

Code:
'---effacement des couleurs et de la ligne de séparation---
br.Interior.ColorIndex = xlNone
br.Borders(xlInsideHorizontal).Weight = xlThin
br.Borders(xlInsideHorizontal).ColorIndex = xlAutomatic
Fichiers (6).

A+
 

Pièces jointes

  • CALCUL MOY noms effacés non supprimés(6).xlsm
    89.1 KB · Affichages: 68
  • CALCUL MOY noms effacés supprimés(6).xlsm
    87.5 KB · Affichages: 55
Dernière édition:

ATHE RIOVELI

XLDnaute Occasionnel
Re : Classement par ordre de merite

Bonsoir job75.
Oui à apparemment, il s'agit du même projet que mes derniers post. Mais en réalité non ce n'est pas le même projet.
Je dispense des cours dans un établissement où après chaque note, le prof doit obligatoirement afficher les notes des élèves par ordre de mérite. C'est l'exeùplaire de cette feuille que j'ai posté. Il ne s'agit donc pas de toucher au fichier précédent ou d'y ajouter quelque chose. Le fichier de calcul de moyennes est fini et presque pret à etre utiliser.
Je souhaite que que vous travailler sur ce dernier post et non sur les fichiers déja existant.
-On doit mettre les nom des élèves
- leur note au devoir
-Trier du de la plus grande note ) la plus petite
- On separe d'une ou deux ligne ceux qui ont obtenu la moyenne et ceux qui ne l'on pas.
Puis on affiche le résultat. SVP travailler directement sur ce nouveau fichier.
 

Pièces jointes

  • Classement par ordre de mérite.xlsx
    10.7 KB · Affichages: 58
  • Classement par ordre de mérite.xlsx
    10.7 KB · Affichages: 56
Dernière modification par un modérateur:

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Bonjour ATHE RIOVELI, le forum,

LA FORCE EST REVENUE.

Voir le fichier joint, en fait l'adaptation à partir du 2ème fichier du post #5 était facile.

Bonne journée.
 

Pièces jointes

  • Classement par ordre de mérite(1).xlsm
    25.6 KB · Affichages: 66

ATHE RIOVELI

XLDnaute Occasionnel
Re : Classement par ordre de merite

Salut job75.
Infiniment merci.
Je savais que je pouvais compter sur vous.
Je suis pas actuellement bon en macro. C'est maintenant que j'essais de m'y intéresser.
Alors comprenez que soit un peu "têtu". Je souhaite être vrai développeur comme vous.
J'ai essayer de voir les macros des post passés mais j'avoue que que je n'ai pas compris beaucoup de choses.
Le post au niveau de "insertion automatique de lignes", j'ai refais le fichier en mode affichage " Portrait".
Résultat, il est devenu très lent lorsque je met un nom au niveau trim1. Le fichier était en mode paysage.
Mais je ne voudrais plus vous emmerder avec ce problème. Je vais essayer de voir si je peux résoudre ce problème.
Je vous envoie quand même le résultats et vous constaterai les changements. Le fichier est devenu très lent.
Le voici en pièce joint.
SVP, ne vous fâché pas. Je vais voir si je peux résoudre le problème.
Puisse Dieu le tout puissant vous accorder toute sa grâce afin de pouvoir répondre à nos préoccupations.
Merci A+
 

Pièces jointes

  • SUPPORT GEST_NOTES.xlsm
    87.2 KB · Affichages: 60

job75

XLDnaute Barbatruc
Re : Classement par ordre de merite

Re,

Vous êtes incohérent puisqu'au post #6 vous écriviez :

Le fichier de calcul de moyennes est fini et presque pret à etre utiliser.

Et maintenant vous revenez avec un fichier différent et que vous dites ne pas fonctionner !

Je souhaite que que vous travailler sur ce dernier post et non sur les fichiers déja existant.

C'est bien ce que j'ai fait, mais vous ne parlez même pas des solutions que j'ai proposées.

RAS LE BOL.

A+
 

ATHE RIOVELI

XLDnaute Occasionnel
Re : Classement par ordre de merite

Salut à vous job75.
Je n'ai pas dit que le fichier ne fonctionne pas. J'ai dit que la vitesse de dépliement est lente lorsqu'on entre les noms.
A propos des solutions que m'apportez, j'ai toujours dit que vous etes un excellent développeur.
J'ai dit que le fichier MOY est completement fini (bien sure grâce à vous, j'ai écrit "problème résolu dans des l'un des post).
SVP, n'ayez pas RAS LE BOL.
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 339
Membres
103 524
dernier inscrit
Smile1813