Problème de filtre avec cellules de taille différente sous Excel
Fermé
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
-
18 janv. 2016 à 11:40
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 27 janv. 2016 à 12:37
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 27 janv. 2016 à 12:37
A voir également:
- Pour ce faire la taille des cellules fusionnées doit être identique
- Comment réduire la taille d'un fichier - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller des cellules excel - Guide
- Comment reduire la taille d'une photo - Guide
- Comment retrouver la taille normale de l'écran iphone ✓ - Forum iPhone
6 réponses
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
18 janv. 2016 à 11:42
18 janv. 2016 à 11:42
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 412
18 janv. 2016 à 11:43
18 janv. 2016 à 11:43
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
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
18 janv. 2016 à 11:45
18 janv. 2016 à 11:45
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...
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
18 janv. 2016 à 16:11
18 janv. 2016 à 16:11
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,
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
>
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
18 janv. 2016 à 16:15
18 janv. 2016 à 16:15
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,
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
18 janv. 2016 à 16:18
18 janv. 2016 à 16:18
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".
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
18 janv. 2016 à 16:21
18 janv. 2016 à 16:21
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, :)
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
18 janv. 2016 à 16:24
18 janv. 2016 à 16:24
Les équipes feront-elles TOUTES le même nombre de lignes ? (donc de coureurs)
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
18 janv. 2016 à 16:29
18 janv. 2016 à 16:29
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 ?...
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
18 janv. 2016 à 17:35
18 janv. 2016 à 17:35
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
drakar3
Messages postés
16
Date d'inscription
lundi 18 janvier 2016
Statut
Membre
Dernière intervention
31 août 2016
20 janv. 2016 à 17:11
20 janv. 2016 à 17:11
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
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
27 janv. 2016 à 12:37
27 janv. 2016 à 12:37
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 ;)
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
18 janv. 2016 à 18:34
18 janv. 2016 à 18:34
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