problème de classement

  • Initiateur de la discussion Initiateur de la discussion Anne Fred
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Anne Fred

Guest
Bonjour,
j'ai fait une macro pour trier une feuille de calcul:
sur cette feuille de calcul il peut y avoir dans la colonne des nombres (tout le temps), mais aussi des cellules vides, mais aussi du texte.
J'aimerais que le tri se fasse ainsi: les nombres croissants, le texte et les cellules vides.

explication de mes feuilles de calcul pour une compétition de gym: j'ai:
Je joins un fichier simplifié pour que vous compreniez mon problème
Qui peut me donner une idée. Merci d’avance
 

Pièces jointes

Dernière modification par un modérateur:
Re : problème de classement

Bonjour Anne Fred, bonjour à toutes et à tous 🙂

Madame, Monsieur, 🙂 je pense qu'un petit fichier serait le bienvenu car pour des non-spécialistes (j'en fais partie), je ne comprends pas bien ce que tu souhaites.

@+
 
Re : problème de classement

Bonjour,

Une solution en VBA avec le code ci-dessous
Code:
'### A adapter (cellule de destination) ###
Const DEST As String = "I3"
'##########################################
Sub Classement()
Dim var
Dim R As Range
Dim T()
Dim i&
Dim j&
Dim cpt&
Dim rang&
ActiveSheet.Range("a3:f19").Copy
With Range(DEST)
  .PasteSpecial xlPasteValues
  .PasteSpecial xlPasteFormats
End With
Set R = Selection
R.Sort Key1:=R.Range("c1"), Order1:=xlDescending, _
     Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
     Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
var = R
ReDim T(1 To UBound(var, 1), 1 To UBound(var, 2))
cpt& = 1
For j& = 1 To UBound(var, 2)
  T(1, j&) = var(1, j&)
Next j&
For i& = 2 To UBound(var, 1)
  If IsNumeric(var(i&, 3)) And (var(i&, 3) <> 0 Or var(i&, 3) = "") Then
    cpt& = cpt& + 1
      If var(i&, 3) <> var(i& - 1, 3) Then
        rang& = rang& + 1
        var(i&, 1) = rang&
      Else
        var(i&, 1) = rang&
      End If
    For j& = 1 To UBound(var, 2)
      T(cpt&, j&) = var(i&, j&)
    Next j&
  End If
Next i&
For i& = 2 To UBound(var, 1)
  If Not IsNumeric(var(i&, 3)) And (var(i&, 3) <> 0 Or var(i&, 3) = "") Then
    cpt& = cpt& + 1
    For j& = 1 To UBound(var, 2)
      T(cpt&, j&) = var(i&, j&)
    Next j&
  End If
Next i&
For i& = 2 To UBound(var, 1)
  If var(i&, 3) = 0 Or var(i&, 3) = "" Then
    cpt& = cpt& + 1
    For j& = 1 To UBound(var, 2)
      T(cpt&, j&) = var(i&, j&)
    Next j&
  End If
Next i&
R = T
End Sub
Cordialement.

PMO
Patrick Morange
 
Re : problème de classement

Merci, Hulk
Ta proposition répond bien à ce que je recherche, mais un problème reste, c'est les équipes ex aequos, qui devraient avoir le même classement.
 
Dernière modification par un modérateur:
Re : problème de classement

Merci pour cette macro PMO2
C'est compliqué pour moi, novice en macros !!!

Je vais essayer d'utiliser cette macro mais il faut que je fasse une modif, car en réalité su mon fichier, les données sont sur une page protégée et le palmares sur une autre page aussi protégée.
Je ne sais pas si je vais être à la hauteur de cette modif , mais en tout les cas merci beaucoup
 
Dernière modification par un modérateur:
Re : problème de classement

Hello tout le monde,

Ben voilà Lynyrd, que je salue, t'as trouvé une solution !

Au fait dans ma version (qui n'est pas la mienne, mais une parmi tant d'autres)
lorsque les équipes sont à parfaite égalité, il les classe par ordre alphabétique.

Question esthétique je préfère comme ça, mais il est vrai que 6è, 6è et 6è pour trois équipes à égalité en 6è position, est plus juste !

Lynyrd, je peux donc dire que les équipes qui suivent sont 7è, 8è, etc. et là juste en ouvrant ton fichier, je m'aperçois que l'équipe suivante est... 9è !? 😀 j'pinaille 😀

Bref, moi je pense qu'il y a pleins de possibilités, c'est une question de goût, et avant tout de pratique suivant ce qu'on veut faire.

Cdt, Hulk.
 
Re : problème de classement

Merci Lynyrd, merci Hulk

je vais arbitrer!!!!
Si les équipes sont à égalité, il faut qu'elles aient la même place, par ordre alphabétique c'est mieux, mais c'est un détail.
PAr contre si j'ai 3 équipes 6èmes, la suivante est 9ème, Hulk ne pinaille plus la dessus !!

Par contre, encore, Lynyrd, une équipe qui n'a pas de note , n'est pas passée, donc n'est pas classée;elle n'est même pas inscrite dans le tableau, donc elle ne doit pas avoir de classement, comme dans la version de Hulk

C'est super sympa ce que vous faites pour moi
merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
255
Didierpasdoué
D
Retour