Comment trier automatiquement ?

EspGre67 Messages postés 20 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Alors voilà,
J'ai un fichier excel, concernant Eurovision, et je fais des statistiques des pays qui ont le plus de chance de gagner. Pour cela, je met chaque points de différents classements de personnes différentes dans le tableau excel.
Les points sont 1,2,3,4,5,6,7,8,10 et 12.

Bref, tout ça pour dire que je dois après avoir rempli la ligne pour chaque pays, supprimer tous les points et marquer le total dans la première case pour que le classement ne bouge pas.
Dès que je rentre des points dans chaque case, le classement se fait automatiquement; mais je voulais savoir comment il était possible de mettre chaque nouveaux points reçus par le pays dans la même case dont le classement se ferait automatiquement, ce qui éviterait de remplir des lignes de points...

Je sais pas si j'ai été clair, désolé...

Le lien pour le document Excel:
https://www.cjoint.com/c/GBot5CeCsrr

Merci beaucoup d'avance !
Cordialement

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    Code modifie pour clasement seulement si toutes les notes sont entrees pour une colonne(si j'ai compris la demande)

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim MaPlage As Excel.Range
        Dim Derlig As Long, Col_Point As String, CelNVid_Point As Long
        
        If Target.Count > 1 Then Exit Sub
        Set MaPlage = Range(Cells(1, 1), Cells(100, 100))
        Derlig = Range("B" & Rows.Count).End(xlUp).Row      'Nombre de pays (derniere cellule non vide colonne B)
        If Not Application.Intersect(Target, MaPlage.Offset(0, 3).Resize(, 100)) Is Nothing Then
            Cells(Target.Row, 3) = Application.Sum(Cells(Target.Row, 4).Resize(, 100))      'cumul point ligne
            Col_Point = Split(Cells(8, Target.Column).Address, "$")(1)     'lettre colonne
            CelNVid_Point = WorksheetFunction.CountA(Range(Col_Point & "1:" & Col_Point & Derlig))      'nbr cellules non vides
            If CelNVid_Point = Derlig Then
                MaPlage.Sort Key1:=Cells(1, 3), Order1:=xlDescending, Header:=xlNo      'tri
            End If
        End If
    End Sub
    0
    1. EspGre67 Messages postés 20 Statut Membre
       
      Bonjour,

      Merci pour votre réponse, mais maintenant que j'ai rentré cela, le classement ne se fait plus automatiquement..
      J'ai sûrement dû mal m'exprimer.

      Par exemple quand je donne des points à un pays, j'aurai aimé les mettre dans la même colonne (et s'additionnent tout seuls) et non pas marquer chaque points dans une autre colonne
      En gros, marquer tout dans une seule colonne sans que les points qui ont été ajoutés avant ne soient oubliés
      + Un tri automatique après

      C'est difficile à expliquer :')

      Merci beaucoup
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > EspGre67 Messages postés 20 Statut Membre
         
        Bonjour,

        pour avoir le tri a chaque entree de point, deux lignes a mettre en commentaire

        'If CelNVid_Point = Derlig Then
                    MaPlage.Sort Key1:=Cells(1, 3), Order1:=xlDescending, Header:=xlNo      'tri
        'End If


        C'est difficile à expliquer :')
        "Ce qui se conçoit bien s’énonce clairement, et les mots pour le dire arrivent aisément"
        Nicolas BOILEAU
        0