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 AZ sur une sélection étendue mais pas trop [XL-2007]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut Tri AZ sur une sélection étendue mais pas trop
    Bonjour à tous,

    J'ai un fichier Excel sur lequel je veux effectuer un tri croissant pour chaque colonne d'en tête BU associé à sa référence.
    Je souhaite que les 2-uplet SAP-BU soient conservés, c'est ce qu'on appelle couremment "étendre la sélection".

    Nom : excel.png
Affichages : 767
Taille : 26,7 Ko

    Le problème c'est que cette selection étendue trie également les autres 2-uplet du même coup.

    Est-ce seulement possible ? Si oui avez-vous une solution à me proposer ?
    Merci

  2. #2
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Je ne comprends pas ce que tu veux au juste par ce tri, mais as tu essayé de séparer tes 2 colonnes SAP/BU et BU par une autre colonne vide?

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Diose Voir le message
    Je ne comprends pas ce que tu veux au juste
    +1

    Pourrais-tu expliquer ton problème en termes plus clairs et décrire ce que tu veux obtenir ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Moi, je dirais, qu'il manque deux tutoriels sur DVP.

    1) Les dix commandements du bon devin

    2) La boule de cristal pour les nuls.

    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Nom : smileys-boule-cristal-tns0.gif
Affichages : 618
Taille : 49,8 Ko

    Ou, mieux, un tutoriel : "Les bases indispensables pour expliquer son problème : de la situation constatée à la situation souhaitée".
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Je vois que ça se marre bien, pourtant mon post était compéhensible pour peu qu'on se donne la peine de comprendre, sisi

    En effectuant un tri A-Z sur une plage verticale, on l'étend automatiquement à la ligne entière ; ce qui veut dire que l'on ne peux pas trier plusieurs 2-uplet de colonne.
    Vous me suivez ?

    Mon besoin est de vouloir faire des classement type "top5" en ordre ascendant et avec une gestion des doublons.
    Avec un peu de VBA et la fonction GRANDE.VALEUR on arrive à nos fins.

    Je vous communique ma solution car ce que j'ai trouvé sur Internet ne me satisfaisait pas : ClassementParetoTop5.xlsm

    Je ne commenterai pas mon code à outre mesure.
    Notez qu'il est adapté à mes besoins je le livre tel quel.

    Dans un module "Main" :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    '=============================================================='
    '           TRAITEMENT DU CLASSEMENT DE PARETO                 '
    '=============================================================='
     
    Public Sub classementPareto(c1 As Range, c2 As Range, c3 As Range, c4 As Range)
    'méthode de classement des k-ièmes valeurs avec gestion des doublons, c1/2/3/4 sont des cellules d'en-tête
    'c1 c2 => tableau de valeur source, c3 => valeurs classées avec la fonction GRANDE.VALEUR, c4 => en attente d'écriture
     
        Dim tabV(2, 21) As Integer
        Dim tabChk(5) As Integer
        Dim tabRes(5) As Integer
        Dim rang As Integer
        Dim src As Integer
        Dim valTampon As Integer
     
        'remplissage des différents tableaux
        '==============================
        For i = 0 To 21
            tabV(0, i) = c1.Value
            tabV(1, i) = c2.Value
            Set c1 = c1.Offset(1, 0)
            Set c2 = c2.Offset(1, 0)
            'Debug.Print tabV(0, i), tabV(1, i)
        Next i
     
        For j = 0 To 4
            tabChk(j) = c4.Value
            Set c4 = c4.Offset(1, 0)
        Next j
     
        'remplissage du tableau Resultat, comparaison à la valeur précédente, ériture dans la cellule
        '==============================
        For j = 0 To 4
     
            src = tabChk(j)
            rang = Main.existenceTab(src, tabV)
            valTampon = tabV(0, rang)
            tabRes(j) = valTampon
     
            If j > 0 Then
                While tabRes(j - 1) = valTampon
                    tabV(1, rang) = -1
                    rang = Main.existenceTab(src, tabV)
                    'Debug.Print "recherche : " & src, " rang : " & rang
                    valTampon = tabV(0, rang)
                Wend
            End If
     
            tabRes(j) = valTampon
            c3.Value = valTampon
            Set c3 = c3.Offset(1, 0)
     
        Next j
     
    End Sub
     
    Public Function existenceTab(Val As Integer, tablo() As Integer) As Integer
    'recherche une valeur dans un tableau de valeur, si existence renvoie son rang, sinon -1
    existenceTab = -1
     
        For i = 0 To 21
            If tablo(1, i) = Val Then existenceTab = i
        Next i
     
    End Function
    Sur la feuille statPareto :
    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
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     
    ' trigger à chaque changement dans la feuille
    'on appelle la fonction qui extrait les 5 ref. les plus présentes dans la feuille statPareto
    ' c1,c2,c3,c4 sont des cellules dites d'en-tête
     
        For j = 0 To 8
        'j correspond au nombre de 2-uplet donc au nombre de classement pareto que l'on souhaite
            pas = j * 4
     
            Set c1 = Worksheets("statPareto").Range("C4").Offset(0, pas)
            Set c2 = c1.Offset(0, 1)
            Set c3 = c1.Offset(26, 0)
            Set c4 = c1.Offset(26, 1)
     
            'Debug.Print Chr(10) & "j:" & j
     
            Call Main.classementPareto(c1, c2, c3, c4)
        Next j
     
    End Sub

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par alexandre.gambuto Voir le message
    Je vois que ça se marre bien, pourtant mon post était compéhensible pour peu qu'on se donne la peine de comprendre, sisi
    A priori, tu es le seul à le penser.
    Tous ceux qui ont lu ta demande semblent penser le contraire.

    En effectuant un tri A-Z sur une plage verticale, on l'étend automatiquement à la ligne entière
    A ma connaissance, non.
    On peut très bien faire un tri qui n'impacte que sur certaines colonne, voir même sur une seule.

    Le seul cas bloquant, à ma connaissance, c'est si l'on a regroupé ses cellules en Tableau (au sens Excel 2007 du terme). Dans ce cas, quand on essaye de lancer le tri, il l'étend à l'intégralité du tableau pour en conserver l'intégrité.

    ; ce qui veut dire que l'on ne peux pas trier plusieurs 2-uplet de colonne.
    Vous me suivez ?
    C'est quoi un "2-uplet" ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Est-ce que tu as un exemple ou le tri ne porte que sur deux colonnes ?
    Cela pourrait me servir la prochaine fois.

    Un 2-uplet c'est un n-uplet où n=2
    Plus sérieusement je voulais parler du couple {colonne1, colonne2}

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par alexandre.gambuto Voir le message
    Est-ce que tu as un exemple ou le tri ne porte que sur deux colonnes ?
    Cela pourrait me servir la prochaine fois.
    Tu crées un nouveau classeur.
    Dans la colonne 1, tu places :
    1
    2
    3

    Dans la colonne 2, tu places :
    B
    A
    X

    Tu sélectionnes les 3 cellules de la colonne 2.
    Tu fais :
    Onglet Données > Trier > Trier par = Colonne 2 > Ok

    Ta colonne 2 est devenue :
    A
    B
    X
    Alors que ta colonne 1 n'a pas changé.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Valorisation & Transfert de technologies
    Inscrit en
    Juin 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Valorisation & Transfert de technologies

    Informations forums :
    Inscription : Juin 2014
    Messages : 43
    Points : 38
    Points
    38
    Par défaut
    Décidément je crois que vous n'avez pas trop compris ma demande...

    Malgré tout je viens de voir que le tri "standard" de Excel fonctionne pour mon besoin.

    Il suffit de selectionner les deux premières colonnes, puis dans "tri" selectionner la colonne B qui sert de référence pour le tri.
    Ainsi la colonne A suit bien le tri avec B sans que les autres valeurs plus loin sur la ligne (disons les colonnes {C,D}, {E,F} etc) en soient affectées.

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par alexandre.gambuto Voir le message
    Malgré tout je viens de voir que le tri "standard" de Excel fonctionne pour mon besoin.
    C'est quoi le tri "non-standard" ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/01/2015, 21h49
  2. Mapper des objets métier sur une base existante (mais pas un simple mapping)
    Par NaBuCO dans le forum Persistance des données
    Réponses: 2
    Dernier message: 13/04/2012, 15h24
  3. Réponses: 3
    Dernier message: 11/07/2011, 11h29
  4. Réponses: 2
    Dernier message: 20/11/2009, 22h19
  5. Install de php sur une mdk 9.1: pas de php.ini
    Par xjinh dans le forum Mandriva / Mageia
    Réponses: 12
    Dernier message: 01/09/2004, 12h07

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