Problème de filtre avec cellules de taille différente sous Excel

drakar3 Messages postés 16 Statut Membre -  
Theo.R Messages postés 585 Statut Membre -
Bonjour à tous,

J'ai déjà vu cette question posée et j'ai l'impression que la solution n'existe pas, ce qui me semble surprenant pour un logiciel comme Excel.

J'ai donc créé un classement par équipe de 2 à 4 coureurs :
- chaque coureur marque des points pour l'équipe et l'idée est de filtrer par rapport au total de points de l'équipe.

Je souhaite donc que le filtre déplace toutes les cellules de l'équipe, qui sont bien évidemment de taille différente. Et forcément, Excel me dit que ce n'est pas possible !

Du coup, je me trouve obligé de rentrer une formule à droite pour trier par ordre de classement puis de couper coller une à une les équipes dans un nouveau tableau... Il n'y a vraiment rien de mieux à faire en 2016 sous Excel ????

Un grand merci par avance,

6 réponses

  1. drakar3 Messages postés 16 Statut Membre
     


    Voici le fichier concerné... :)
    0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    qu'appelez vous des cellules de tailles différentes. S'il s'agit de cellule fusionnées, le filtre ne fonctionnera pas!
    Mais dans ce cas, qu'est ce qui vous oblige à les fusionner "bien évidemment"?

    à vous lire
    0
  3. drakar3 Messages postés 16 Statut Membre
     
    Sur l'image jointe, il y a donc un logo, puis à droite le score global (sous points) et les noms des 4 coureurs avec ensuite leur score respectif... il faudrait pouvoir trier sur le seul score global...
    0
    1. Theo.R Messages postés 585 Statut Membre 31
       
      Bonjour,

      Je pense que c'est possible, mais pas par une solution "standard" préconçue par Excel. J'ai en tête une macro qu'il suffirait de lancer via un bouton pour regénérer le classement selon les points de chaque équipe.

      En soit ça n'est pas un code très compliqué, mais étant données les particularités de votre demande (taille des cellules, etc.), je préfèrerais avoir un document excel de votre part et une demande précise sur ce que vous attendez avant de me lancer sous VBA :-)

      En bref :
      - Merci de poster un document de base via www.cjoint.com
      - Merci de lister vos attentes PRECISES (souhaits, contraintes, etc.). Pensez notamment à la manière dont vous allez remplir votre document. Celle-ci va définir la manière dont nous devrons concevoir la solution ;)

      Bien à vous,
      0
      1. drakar3 Messages postés 16 Statut Membre > Theo.R Messages postés 585 Statut Membre
         
        C'est très gentil de votre part.
        Je vous joins donc le document.
        Le principe est simple : après chaque épreuve, des points sont attribués à des coureurs.
        Ces points alimentent la case total.
        L'objectif est ensuite que le classement se mette à jour, du plus au moins grand nombre de points.
        Je vous joints le fichier. :)
        Un grand merci par avance,
        0
  4. drakar3 Messages postés 16 Statut Membre
     
    Voici le lien :
    https://www.cjoint.com/c/FAspqTrS1ni

    Comme vous le verrez, toutes les équipes ne sont pas créées, et le total de points est donc dans les 30 cases situées sous "Pts".
    0
    1. drakar3 Messages postés 16 Statut Membre
       
      Dernière précision : la case total ne contient pas encore la formule à jour mais ce n'est pas important. L'objectif est de créer la macro qui permettra de trier dans l'ordre décroissant à partir de ces 30 totaux, tout en respectant l'ordre des logo, noms de teams et coureurs concernés. Merci, :)
      0
    2. Theo.R Messages postés 585 Statut Membre 31
       
      Les équipes feront-elles TOUTES le même nombre de lignes ? (donc de coureurs)
      0
    3. drakar3
       
      Effectivement, 4 coureurs maximum dont 4 lignes et 5 non de lequipe compris.
      0
    4. Theo.R Messages postés 585 Statut Membre 31
       
      Autre question : je vois sur le document joint qu'il y a plusieurs tableaux, il faut les garder séparer ? Il ne faut faire qu'un seul classement ou chaque tableau constitue un classement indépendant ?...
      0
    5. Theo.R Messages postés 585 Statut Membre 31
       
      Encore une autre question en attendant la réponse de la dernière :

      que voulez-vous faire des équipes qui ont le même score ? On garde l'égalité et on saute une place (pour deux 1er exéquo on aurait : 1er - 1er - 3ème ...) ou autre ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. drakar3 Messages postés 16 Statut Membre
     
    Bonjour Theo,

    En fait, ça ne colle pas complètement :
    - l'idée est que les 30 équipes soient classés par ordre décroissant : 1er au 10è en 1ère page (ligue 1), 11è au 20è en 2è page (ligue 2) et 21è au 30 en 3è page (ligue 3).
    - sachant que j'ai amélioré quelques aspects du documents.
    - et qu'il est possible que je rajoute une ou deux ligues à l'avenir (donc ligue 4 et ligue 5).

    Cela te semble possible d'adapter ta macro ?
    Merci encore :)

    Le document : https://www.cjoint.com/c/FAuqjgSh3fi
    0
    1. Theo.R Messages postés 585 Statut Membre 31
       
      Bonjour,

      Pas de souci pour le délai de réponse, la seule chose est que je n'ai plus le temps actuellement avec mon travail pour reprendre mon code et l'adapter à vos précisions..

      Mais il y a de grandes chances qu'il faille plus ou moins repartir de 0, mon code était spécifique à une situation avec un mode opératoire précis.

      Bref, désolé mais je ne pourrai pas traiter votre demande pour le moment, j'espère que d'autres adeptes des macros sur-mesures verront ce msg et pourront prendre le relai ;)

      Bonne continuation,

      NB: si le topic tombe dans les méandres de l'oubli, vous pouvez le fermer et en ouvrir un nouveau avec une description synthétique et complète de votre demande ;)
      0
  7. Theo.R Messages postés 585 Statut Membre 31
     
    En l'absence de plus de détails sur la demande, ci-dessous le code que j'ai pu faire.

    Fonctionnement préalable : - la feuille avec les résultats doit impérativement être nommée "CLASSEMENT"
    - Il ne doit y avoir que 10 équipes (cellules B6:B12 à B60:B64 dans l'exemple)
    - En cas de score égal, c'est l'équipe qui apparaît en premier dans la liste qui prend la place supérieure (peut être injuste mais bon!)

    Bonne continuation :

    Sub Classement()
    Application.ScreenUpdating = False

    For i = 6 To 60 Step 6
    Range("B" & i).Value = WorksheetFunction.Rank(Range("E" & i).Value, Range("E:E"))
    Next i

    For j = 60 To 6 Step -6
    If WorksheetFunction.CountIf(Range("B:B"), "=" & Range("B" & j).Value) = 1 Then
    Else
    Range("B" & j).Value = Range("B" & j).Value + 1
    End If
    Next j

    Set Originale = Sheets(2)
    Originale.Copy Before:=Sheets(2)
    Set Copie = Sheets(2)

    Originale.Select
    ActiveSheet.Pictures.Delete

    For k = 6 To 60 Step 6

    If Copie.Range("B" & k).Value = 1 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B6:B10").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 2 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B12:V16").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 3 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B18:V22").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 4 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B24:V28").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 5 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B30:V34").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 6 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B36:V40").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 7 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B42:V46").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 8 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B48:V52").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 9 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B54:V58").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 10 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASSEMENT").Select
    Range("B60:V64").Select
    ActiveSheet.Paste
    End If

    Next k
    Application.CutCopyMode = False
    Application.DisplayAlerts = False
    Originale.Range("B2").Select
    Copie.Select
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True

    Application.ScreenUpdating = True
    End Sub
    -1
    1. drakar3
       
      Bonjour Theo, désolé de répondre tardivement mais je n'ai pas eu d'alerte de réponse... je vais tester ça et te tiens au courant :)
      0