Porblème fonction TRI 8500 lignes

Résolu
knapy70 Messages postés 13 Statut Membre -  
knapy70 Messages postés 13 Statut Membre -
Bonjour,

J’ai une feuille Excel (environ 8500 lignes) comprenant des classements du style 1er au 10ème.
Or les données sont compactes. Je chercherai à faire un tri croissant selon un critère (style temps de performance) pour chaque classement.

Pour l’ensemble des données, Excel effectue un tri pour les 8500 lignes selon temps de performance.

Existe-t-il une macro ou une fonction Excel pouvant traiter un tri selon un critère ( ex colonne temps de performance) pour chaque classement ?

Existe-t-il une macro pouvant insérer une ligne vierge dans ce tableau selon par exemple la colonne indiquant « 1er » et le contraire, cad supprimer une ligne après une ligne comportant « 1er » ?

Merci d’avance pour vos réflexions et propositions.

Knapy70.
Configuration: Windows XP
Firefox 3.0.15

6 réponses

  1. Gord21 Messages postés 928 Statut Membre 289
     
    Bonsoir,
    Il faudrait être un peu plus précis : pourrais-tu nous envoyer un fichier pour donner un exemple ?
    Pour les questions, je répondrais oui, mais à priori, tu as 850 classements : comment sont-ils différenciés ?
    0
  2. knapy70 Messages postés 13 Statut Membre
     
    Bonsoir,

    Je te joins le fichier : http://dl.free.fr/getfile.pl?file=/k3YnWJl0

    Ce sont des courses. Il existe un code course et les éléments des courses.

    Je voudrais effectuer un tri croissant par rapport à la colonne "cote fin".
    J'imagine qu'il existe une macro ou fonction

    Je débute en macro.

    Merçi d'avance

    Knapy70
    0
  3. Gord21 Messages postés 928 Statut Membre 289
     
    Bonsoir,
    Si j'ai bien compris, je pense que la fonction Données/Trier répond à ton besoin : tu fais un premier tri suivant N° course croissant puis un second suiavnt cote fin décroissant.
    Pour insérer et supprimer les lignes, on peut le faire avec un macro, mais je n'ai pas trop compris ce que tu veux faire.
    0
  4. knapy70 Messages postés 13 Statut Membre
     
    Bonjour,

    Merci pour ton conseil, en effet, cela fonctionne.
    Quelques révisions sur Excel s'imposent !

    Pour insérer/supprimer une ligne vierge entre chaque
    courses (à partir du code code course ou classement), c'est juste
    une question de présentation pour bien distinguer sur le fichier
    une séparation entre chaque course pour une meilleure
    visibilité. A mon avis une macro peut le faire, ce qui est mieux de
    le faire manuellement.

    Cordialement,

    Knapy70
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gord21 Messages postés 928 Statut Membre 289
     
    Bonjour,
    Oui effectivement, une macro semble le mieux adaptée, par exemple :
    '
    ' Début du code
    '#################
    '
    Sub Ajouter_lignes()
    '
    ' Déclaration des variables
    Dim i As Integer
    Dim etat_avant As Boolean
    '
    ' Initialisation des variables
    i = 3
    '
    ' Désactivation de la mise à jour de l'affichage pour éviter le scintillement
    etat_avant = Application.ScreenUpdating
    Application.ScreenUpdating = False
    '
    ' Tant que la cellule Bi n'est pas vide
    While (Range("B" & i).Value <> "")
    ' Si la valeur en Bi est différente de la valeur en B(i-1) alors
    If (Range("B" & i).Value <> Range("B" & (i - 1)).Value) Then
    ' Insertion d'une ligne
    Rows(i).Insert Shift:=xlDown
    ' Changement de la hauteur de la ligne inséée
    Rows(i).RowHeight = 6
    i = i + 2
    Else
    i = i + 1
    End If
    Wend
    '
    Application.ScreenUpdating = etat_avant
    '
    End Sub
    '
    '#########################
    ' Fin du code

    Bonne soirée
    0
  7. knapy70 Messages postés 13 Statut Membre
     
    Bonjour,

    Merci encore pour ton aide Gord21.
    Ta macro apporte une meilleure présentation.

    Cordialement,

    Knapy70
    0