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

Excel Discussion :

Tri avec une liste personnalisée


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Tri avec une liste personnalisée
    Bonjour,

    Je désire crééer une macro pour trier une feuille Excel selon trois ordres de tri.
    Le premier ordre de tri doit s'effectuer selon une liste personnalisés (38, 39, 31, 34, 36, 35, 52, 56, 08, 09, 10, 11) Colonne A
    Le deuxième et troisième ordre de tri doivent se faire sur les colonnes N puis G selon l'odre croissant.

    Merci beaucoup à celui qui pourra m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Ci-joint le fichier avec la macro.
    Ne sachant pas quoi faire avec les 12 et 15 je les ai triés en fin de liste

    FICHIER TRI PERSONNALISE
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut fring,

    La macro fonctionne très bien et je t'en remercie.
    J'ai une autre question.
    La macro fonctionne t'elle si je rajoute 30 colonnes à trier ou des lignes.

    Merci d'avance

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si les lignes et les colonnes sont contigues, cad sans ligne ou colonne vide, oui pas de problème, sinon il faut légèrement adapter la macro.
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Sur les colonnes aucun problème.
    Par contre, il m'arrive que certaines lignes soient vides.

    Peux tu me dire les changements à executer.

    Merci d'avance

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je n'étais pas certains mais pas de problème, je viens de tester et en cas de lignes vides elles seront triées en fin de tableau
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut Fring,

    Je te remercie beaucoup pour ton aide et ta rapidité

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Hello,

    J'ai un petit souci avec la macro lorsque la ligne 2 est vide.
    La ligne titre passe en fin de tri et cela me pose un problème.
    Existe t'il une solution ?

    Merci d'avance

  9. #9
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Oui ya une solution.

    Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A2").Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("O2") _
        , Order2:=xlAscending, Key3:=Range("H2"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A2").Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("O2") _
        , Order2:=xlAscending, Key3:=Range("H2"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Merci pour ta solution, elle fonctionne super.
    Je maintenant crée une autre macro et je voudrais savoir comment créer la commande =INCORPORER("Forms.CommandButton.2";"")lancer.
    Le système ne m'autorise pas à la créer.

    Merci encore pour ta solution précédente

  11. #11
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Sur la FAQ de Microsoft office on peut lire ceci :
    La fonction INCORPORER est une fonction interne utilisée par Excel. Bien que cette fonction apparaisse dans la barre Fonction, elle n'est pas destinée aux utilisateurs d'Excel.
    Tu souhaites faire quoi ? Insérer un bouton sur ta feuille et lui affecter une macro ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Oui, c'est tout a fait ce que je veux.

  13. #13
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Ci-dessous le code avec quelques explications
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub Ajout_CmdBut()
    Dim Obj As OLEObject, x As Integer
     
    '***********************************************************
    'vérification des objets déjà présent sur la feuille
    'pour attribution d'un numéro au bouton
    x = ActiveSheet.OLEObjects.Count + 1
    '***********************************************************
     
    '***********************************************************
    'Ajout CommandButton dans la feuille
    Set Obj = ActiveSheet.OLEObjects.Add("Forms.CommandButton.1")
    '***********************************************************
     
    '***********************************************************
    'propriétés du bouton
    With Obj
        .Name = "CommandButton" & x
        .Left = 300 '<-- position horizontale
        .Top = 5 '<-- position verticale
        .Width = 55 '<-- largeur
        .Height = 22 '<-- hauteur
        .Object.BackColor = RGB(255, 200, 0) '<-- couleur du bouton
        .Object.ForeColor = RGB(0, 0, 0) '<-- couleur du texte
        .Object.Font.Name = "Arial" '<-- police de caractères
        .Object.Font.Size = 10 '<-- taille de la police
        .Object.Font.Bold = True '<-- True = style gras / False = style normal
        .Object.Caption = "Test" '<-- texte sur le bouton
    End With
    '***********************************************************
     
    '***********************************************************
    'insertion du code qui sera exécuté via le bouton
    Code = "Sub CommandButton" & x & "_Click()" & vbCrLf
    Code = Code & "Sheets(""feuil2"").select" & vbCrLf
    Code = Code & "msgbox ""Le code fonctionne""" & vbCrLf
    Code = Code & "End Sub"
     
    With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        NextLine = .CountOfLines + 1
        .InsertLines NextLine, Code
    End With
    '***********************************************************
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Merci beaucoup de ton aide.
    J'espère que ma commande 2 fonctionnera.

    A bientôt

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

Discussions similaires

  1. [XL-2013] Simplifier un code macro en VBA pour faire un tri d'une liste personnalisée
    Par phanoulevoyou dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 17/11/2013, 12h23
  2. Tri sur une base de donnée avec une list box
    Par niamo dans le forum IHM
    Réponses: 5
    Dernier message: 26/05/2010, 12h07
  3. Tri sur une list(of) avec classe perso
    Par Faladin dans le forum VB.NET
    Réponses: 9
    Dernier message: 04/08/2008, 20h13
  4. Tri d'une liste avec template
    Par Invité dans le forum Langage
    Réponses: 14
    Dernier message: 24/12/2007, 13h28
  5. Tri d'une liste d'attente avec priorité
    Par boutchz dans le forum Access
    Réponses: 8
    Dernier message: 02/03/2006, 18h42

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