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 Excel tri personnalisé [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Par défaut Macro Excel tri personnalisé
    Bonjour,
    je souhaite faire une macro de tri personnalisé sous excel.

    Dans toutes mes cellules ce sont des nombres.
    Ma colonne B doit être trié par ordre décroissant

    après le tri, je veux contrôler:
    - que dans ma colonne A la ligne contenant "10" soit obligatoirement après toutes c'est cellules "1,2,3,4,5,6,7,8,9" sinon déplacer après la derrière de la liste "2,3,4,5,6,7,8,9"
    - que dans ma colonne A la ligne contenant "20" soit obligatoirement après toutes c'est cellules "11,12,13,14,15,16,17,18,19" sinon déplacer après la derrière de la liste "11,12,13,14,15,16,17,18,19" .

    Merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    aucun souci de tri en manuel si les options sont bien paramétrées (décroissant, pas de titre de colonne)
    et en activant l'Enregistreur de macros une base de code est livrée sur un plateau !

    Ou encore tout simplement en lisant l'aide VBA de la méthode Range.Sort


    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Par défaut
    MERCI

    J'ai essayer un tri personnalisé par niveau mais ça ne marche pas avec la colonne A.

    Voici une deuxième feuille excel pour mieux comprendre.

    colonne AB= base donnée
    colonne DE= après un tri de la colonne B
    colonne GH= c'est que je cherche à réaliser déplacer la ligne 10 après 1,2,...,9 et 20 après 11,12,...,19
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Oui alors là ce n'est plus une logique de tri Excel !

    Il suffit de parcourir les cellules depuis la dernière (voir l'aide VBA de For … Next avec l'option Step -1) …

  5. #5
    Membre chevronné Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Par défaut
    Je peux te proposer une solution mais il y aura sûrement mieux.

    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 x()
     
    Dim a, b As Integer
    n = Range("A" & Rows.Count).End(xlUp).Row
     
     
     Range("A3:B" & n).Sort Key1:=Range("B3"), Order1:=xlDescending, Header:= _
            xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortTextAsNumbers
     
     
     For j = 1 To 20
       For i = n - 1 To 3 Step -1
     
         If Cells(i, 1).Value = 10 And Cells(i + 1, 1).Value < 10 Then
             a = Cells(i, 1).Offset(0, 1).Value
             Cells(i, 1).Value = Cells(i + 1, 1).Value
             Cells(i, 1).Offset(0, 1).Value = Cells(i + 1, 1).Offset(0, 1).Value
             Cells(i + 1, 1).Value = 10
             Cells(i + 1, 1).Offset(0, 1).Value = a
         End If
     
      Next
     
     Next
     
    For j = 3 To n - 1
      For i = n - 1 To 3 Step -1
     
        If Cells(i, 1).Value = 20 And Cells(i + 1, 1).Value < 20 Then
     
            b = Cells(i, 1).Offset(0, 1).Value
           Cells(i, 1).Value = Cells(i + 1, 1).Value
           Cells(i, 1).Offset(0, 1).Value = Cells(i + 1, 1).Offset(0, 1).Value
           Cells(i + 1, 1).Value = 20
           Cells(i + 1, 1).Offset(0, 1).Value = b
     
         End If
     
      Next
     
    Next
     
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Par défaut
    ça l'air de marcher. Merci beaucoup à vous deux.
    Je teste la macro dans la journée et je reviens vers vous.

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

Discussions similaires

  1. [XL-2010] Effectuer un tri sur plusieurs fichiers avec la même macro excel
    Par flodrows dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/03/2016, 16h31
  2. [XL-2010] Tri personnalisé Excel
    Par Tournefeuille dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 31/03/2015, 08h41
  3. Macro de tri personnalisé pour un classeur
    Par bobafric dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/04/2012, 10h28
  4. " Excel" : Macro pour tri trois variables
    Par jeremtokyo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2007, 12h37
  5. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19

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