Problème de filtre avec cellules de taille différente sous Excel
drakar3
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Theo.R Messages postés 575 Date d'inscription Statut Membre Dernière intervention -
Theo.R Messages postés 575 Date d'inscription Statut Membre Dernière intervention -
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,
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,
A voir également:
- Pour ce faire la taille des cellules fusionnées doit être identique
- Comment réduire la taille d'un fichier - Guide
- Taille 32x32 correspondance ✓ - Forum Loisirs / Divertissements
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller des cellules excel - Guide
- Reduire taille image - Guide
6 réponses
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
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
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...
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,
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,
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,
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,
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".
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".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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 ;)
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 ;)
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
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