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 :

Ranger deux tableaux dans l'ordre d'apparition des valeurs [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut Ranger deux tableaux dans l'ordre d'apparition des valeurs
    Bonjour,

    j'ai un classeur excel dans lequel j'ai 2 colonnes avec des valeurs communes.

    J'aimerais trier la 2ème colonne dans l'ordre d'apparition des valeurs dans la 1ère colonne, sachant qu'il est possible que toutes les valeurs ne soient pas présentes, cela va de soi.

    Les valeurs présentes dans la colonne 1 et non présentes dans la colonne 2 sont à placer dans la colonne 2.

    Les valeurs présentes dans la colonne 2 et présentes dans la colonne 1 sont à placer côte à côte.

    Les valeurs présentes dans la colonne 2 et non présentes dans la colonne 1 sont à placer dans l'ordre initial d'apparition dans la colonne 2 à la fin de la colonne 2.

    Remarque : il n'est pas possible d'avoir plusieurs fois la même valeur par colonne.

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    colA    colB               colA    colB
    ----    ----               ----    ----
    val1    val2               val1    val1    
    val2    val3        =>     val2    val2
    val3    val4               val3    val3
    val4    val5               val4    val4
                                       val5

    Je ne pratique pas le VBA assez fréquemment pour m'en sortir tout seul rapidement.

    => Pourriez-vous m'écrire la MACRO qui ferait cela ?

    Merci beaucoup.

    Cordialement,
    JK.

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    L'enregistreur de macro est parfaitement capable de l'écrire!
    un peut d’audace que diable!!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Je ne sais pas enregistrer cette séquence pour la rendre utilisable.

    Il se pourrait qu'il faille en effet utiliser une rechercheV, car les valeurs peuvent être n'importe où dans la pratique : dans le désordre le plus absolu.

    Une âme charitable pour un bout de code ?

    Cordialement,
    JK.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Quel est la version de ton Excel? C'est important

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Voici une copie d'écran qui comporte, j'espère, les informations nécessaires :

    Nom : version_MS_Office.jpg
Affichages : 292
Taille : 66,9 Ko

    Cordialement,
    JK.

    Voici un fichier excel avec un exemple plus représentatif.

    PS : j'ai oublié de préciser que #mot-cle# est concaténé aux valeurs qui existent dans la colonne 1 uniquement lorsqu'elles sont ajoutées à la colonne 2.

    Cordialement,
    JK.
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
    Sub test()
    Dim NB As Long
    NB = ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("A" & Rows.Count).End(xlUp).Row
    TriSelect ActiveWorkbook.Worksheets("VMAP_COLLATERAL"), ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("A2:A" & NB), xlAscending
    TriSelect ActiveWorkbook.Worksheets("VMAP_COLLATERAL"), ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("A2:A" & NB), xlDescending
     
    NB = ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("B" & Rows.Count).End(xlUp).Row
    TriSelect ActiveWorkbook.Worksheets("VMAP_COLLATERAL"), ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("B2:B" & NB), xlAscending
    TriSelect ActiveWorkbook.Worksheets("VMAP_COLLATERAL"), ActiveWorkbook.Worksheets("VMAP_COLLATERAL").Range("B2:B" & NB), xlDescending
    End Sub
     
    Sub TriSelect(MySheet As Worksheet, MyRange As Range, Optional CroisantDeCroisant As Long)
       MySheet.Sort.SortFields.Clear
        MySheet.Sort.SortFields.Add Key:=Range( _
           Replace(MyRange(1, 1).Address, "$", "")), SortOn:=xlSortOnValues, Order:=CroisantDeCroisant, DataOption:= _
            xlSortNormal
        With MySheet.Sort
            .SetRange MyRange
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

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

Discussions similaires

  1. Changer l'ordre d'apparition des colonnes dans un LOV
    Par roby_rou dans le forum Oracle
    Réponses: 2
    Dernier message: 07/05/2010, 21h25
  2. [XL-2007] lier deux tableaux dans la même feuille
    Par mobiclick dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2010, 17h49
  3. [AC-2007] Deux tableaux dans un seul état
    Par Abed_H dans le forum IHM
    Réponses: 3
    Dernier message: 16/03/2010, 04h47
  4. Lier deux tableaux dans Excel
    Par sat478 dans le forum Excel
    Réponses: 3
    Dernier message: 11/01/2010, 08h30
  5. [MySQL] comparaison de deux dates dans un ordre sql
    Par opeo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/03/2007, 14h34

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