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 :

classer données suivant les priorités


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 65
    Par défaut classer données suivant les priorités
    Bonjour,

    J'aimerais classer les données de mon tableau ci dessus suivant les priorités de la premiere colonne (de 1 à n)

    Quelqu'un pourrais m'aider?
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    En utilisant l'enregistreur de macro, tu aurais eu ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 15/02/2012 par jerome.fontaine
    '
     
    '
        Range("A4:C10").Sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range( _
            "C5"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
            :=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
            DataOption2:=xlSortNormal
    End Sub

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 65
    Par défaut
    j'avais effectivement oublié d'utiliser l'enregistreur de macros et finalement j'obtiens cela grace à "Selection.sort key:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub macro()
     
    lmaxrow = currentws.Range("A65536").End(xlUp).Row
    lmaxcol = currentws.Cells(1, currentws.Cells.Columns.Count).End(xlToLeft).Column 
    currentws.Activate
    currentws.Rows(5 & ":" & lmaxrow).Select
    Selection.Sort Key1:=Range(currentws.Cells(5, lmaxcol), currentws.Cells(5, lmaxcol)), Order1:=xlAscending
     
    end sub
    sauf que le probleme que je rencontre c'est que j'ai des cellulles fusionnées et je ne sais pas comment faire marcher ma macro sans defusionner mes cellules?

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Désolé, mais la je ne suis pas sur que ça puisse fonctionner avec des fusions. (Du moins, personnellement, je ne sais pas faire )

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 65
    Par défaut
    Bonjour,

    J'ai finalement trouvé la reponse en creusant un peu sur internet.

    J'ai utilisé la commande "UnMerge" : cette méthode scinde une zone fusionnée en cellules individuelles pour traiter mes données.

    Voici le code final:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub tester()
     
    Dim maxcol As Long
    Dim maxrow As Long
     
    maxrow = currentws.Range("A65536").End(xlUp).Row
    maxcol = currentws.Cells(4, currentws.Cells.Columns.Count).End(xlToLeft).Column
     
    currentws.Range(5 & ":" & maxrow).UnMerge
     
    currentws.Range(5 & ":" & maxrow).select
    Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, dataoption1:=xlSortNormal
     
    end sub
    merci en tout cas de m'avoir aidé pour le tri!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/10/2011, 19h56
  2. [XL-2003] enregistrement tableau excel suivant les données entrées dans combobox
    Par mdambreville dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/06/2009, 11h28
  3. Filtrer les données suivant l'utilisateur
    Par aba_tarn dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2008, 18h31
  4. [MySQL] Tableau n'affiche pas les données sur les pages suivantes
    Par orleans dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2007, 21h17
  5. Réponses: 4
    Dernier message: 23/05/2007, 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