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 de triage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    Bonjour tout le monde,

    Je suis en train de realiser un gros tableau avec pas mal de donnees et je souhaiterai trier mes donnees. Je detaille quelque peu :

    Dans ma premiere colonne, j'ai des references de contrat du type : H-9602-01-C
    Dans ma deuxieme et ma troisieme colonne j'ai 2 chiffres : 00 01 par exemple et dans ma quatrieme j'ai un numero du type 0.0001

    j'aimerai classer mes donnees tout d'abord par reference de contrat puis ensuite par ordre croissant pour les trois colonnes suivants pour avoir un resultat du genre :

    H-9602-01-C 00 01 0.0001
    H-9602-01-C 00 01 0.0002
    H-9602-01-C 01 01 0.0001
    F-9605-03-C 02 04 0.0001
    F-9605-03-C 02 04 0.0002

    J'espere avoir ete clair.

    je ne vous demande pas de me rediger mon code (sauf si vous y tenez particulierement) mais j'aimerai surtout savoir si c'est possible et la fonction de rangement que je dois utiliser parce que je ne vois pas vraiment.
    Surtout que mes criteres doivent rester dynamique car je serai amene a avoir de nouvelles references de contrat ou des references supplementaires dans un contrat deja existant

    merci d'avance

    Dans l'explorateur des fonctions, j'ai trouve la fonction Sort dans le menu Range. Par contre, vu que mon Excel est en allemand je ne comprend pas tout sur le facon de l'utiliser.
    Je serais vraiment reconnaissant si quelqu'un pouvait me copier en francais (voire anglais) l'aide concernant cette fonction.

    Merci d'avance !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 11
    Par défaut
    Bonjour, ci dessous l'aide en francais sur cette fonction :

    Référence du développeur Excel
    Range.Méthode Sort
    Trie une plage de valeurs.
    Syntaxe

    expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)

    expression Variable représentant un objet Range.

    Paramètres

    Nom Obligatoire/Facultatif Type de données Description
    Key1 Facultatif Variante Désigne le premier champ du tri, soit sous forme de chaîne de nom de plage ou sous forme d'objet Range ; détermine les valeurs à trier.
    Order1 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key1.
    Key2 Facultatif Variante Second champ de tri ; inutilisable pour le tri d'un tableau croisé dynamique.
    Type Facultatif Variante Indique les éléments à trier.
    Order2 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key2.
    Key3 Facultatif Variante Troisième champ de tri ; inutilisable pour le tri d'un tableau croisé dynamique.
    Order3 Facultatif XlSortOrder Détermine l'ordre de tri pour les valeurs spécifiées dans Key3.
    Header Facultatif XlYesNoGuess Indique si la première ligne contient l'information d'en-tête. xlNo est la valeur par défaut ; spécifiez xlGuess si vous souhaitez qu'Excel tente de déterminer l'en-tête.
    OrderCustom Facultatif Variante Spécifie un décalage d'entier (base 1) dans la liste d'ordres de tri personnalisés.
    MatchCase Facultatif Variante Définissez sur True pour exécuter un tri qui respecte à la casse, False pour exécuter un tri qui ne respecte pas la casse ; inutilisable avec des tableaux croisés dynamiques tables.
    Orientation Facultatif XlSortOrientation Spécifie si le tri doit être effectué en ordre ascendant ou descendant.
    SortMethod Facultatif XlSortMethod Spécifie la méthode de tri.
    DataOption1 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key1 ; ne s'applique pas au tri des tableaux croisés dynamiques.
    DataOption2 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key2 ; ne s'applique pas au tri des tableaux croisés dynamiques.
    DataOption3 Facultatif XlSortDataOption Indique comment trier le texte de la plage spécifiée dans Key3 ; ne s'applique pas au tri des tableaux croisés dynamiques.

    Valeur renvoyée
    Variante

    © 2006 Microsoft Corporation. Tous droits réservés.

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Par défaut
    J'ai reussi.
    Le deuxieme sort permet de classer 3 colonnes successivement et decale les lignes entierement vu que j'ai pris tout mon tableau dans le .Sort.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Ordnen()
     
    Dim GESAMT As Worksheet
    Dim C As Range
     
    Set GESAMT = Workbooks("Gesamt-Tabelle.xls").Worksheets("Tabelle")
    GESAMT.Range("A8:Z100").Sort _
            Key1:=GESAMT.Columns("D"), Order1:=xlAscending
     
    GESAMT.Range("A8:Z100").Sort _
            Key1:=GESAMT.Columns("A"), Order1:=xlAscending, Key2:=GESAMT.Columns("B"), Order2:=xlAscending, _
            Key3:=GESAMT.Columns("E"), Order3:=xlAscending

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Exécuter une macro Access
    Par Nektanebos dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/02/2006, 17h32
  2. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 15h30
  3. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 13h15
  4. Qu'est-ce qu'une macro ?
    Par karli dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/09/2002, 04h38
  5. Réponses: 2
    Dernier message: 22/07/2002, 13h13

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