IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro permettant le tri de données.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Mlezen
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 63
    Par défaut Macro permettant le tri de données.
    Bonjour à tous,
    je suis en train d'écrire une macro qui me permettra de trier des données contenues dans un fichier texte de trois colonnes et n lignes (N pouvant aller jusqu'à 20 millions).
    Pour le moment, je travaille avec un fichier de test et je n'arrive pas au résultat escompté (mon fichier a 40000 lignes et fait 2Mo, le fichier de sorti fait 150Mo et a des millions de lignes !).

    J'utilise un "shellsort" dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Public Sub ShellSort()
     
        Dim I As Long, J As Long, H As Long, V As Long, loBound As Long, upBound As Long
     
        loBound = LBound(Données(), 1)
        upBound = UBound(Données(), 1)
     
        H = loBound
        Do
            H = 3 * H + 1
        Loop Until H > upBound
     
        Do
            H = H / 3
            For I = H + 1 To upBound
                V = Données(I, 2)
                J = I
                Do While Données(J - H, 1) > V
                    Données(J, 2) = Données(J - H, 1)
                    J = J - H
                    If J <= H Then
                        Exit Do
                    End If
                Loop
                Données(J, 2) = V
                Write #1, Données(J, 1), Données(J, 2), Données(J, 3)
            Next I
        Loop Until H = loBound
    End Sub
    Ce que je souhaiterais c'est avoir un nouveau fichier texte avec mes trois colonnes, et les x classés de façon croissante (avec les y et z correspondants).

    Merci de votre aide.

    Max

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir
    une piste avec un classeur exemple qui n'est pas de moi

    http://cjoint.com/?keuvx4JwKK

    Salutations

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/07/2012, 23h44
  2. Réponses: 1
    Dernier message: 09/05/2012, 10h22
  3. [Toutes versions] Modification d'une Macro pour un tri de données spécifique
    Par davidstarr dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/03/2011, 06h52
  4. [XL-2010] Modification de Macro pour un tri de données
    Par davidstarr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2011, 17h39
  5. Macro permettant envoi de données dans un autre fichier excel
    Par M8407108 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/11/2007, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo