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 :

Tri & Sélection d'une plage de taille inconnue


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut Tri & Sélection d'une plage de taille inconnue
    Bonjour,
    Je cherche à trier un tableau dont je connais le nb de colonnes mais pas le nb de lignes. Il est rangé en feuille 2, commence en A1 et ne contient aucune cellule vide. Pour l'instant j'ai tapé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("Feuil2!A1:D1000").Sort Range("B1"), xlAscending, , , , , , xlYes
    mais ça ne marche pas, sans doute parce qu'il y a bcp de lignes vides en dessous du tableau en question. Comment faire pour saisir uniquement la plage dont j'ai besoin ?

    Deuxième question : malgré le "xlYes" le code tri aussi la ligne de titre qui se retrouve en bas. Ce n'est pas ce que je veux !! Comment y remédier ?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu as un en-tête de colonne, tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.UsedRange.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    Si tu n'as pas d'en-tête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.UsedRange.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    C'est bien les "xlAscending, , , , , , xlYes" mais sais-tu à quoi tu mets xlYes ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut
    J'ai essayé votre premier code, dans une procédure où il n'y a QUE ce code , autrement dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub tri ()
    ActiveSheet.UsedRange.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    End Sub
    Mais mon ordi n'apprécie pas : "Erreur définie par l'application ou par l'objet"...

    D'autre part, que signifie "Orientation:=xlTopToBottom" et "Orientation:=xlTopToBottom" ?

  4. #4
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    Citation Envoyé par pythagore3_14 Voir le message
    D'autre part, que signifie "Orientation:=xlTopToBottom" et "Orientation:=xlTopToBottom" ?
    Les 2 signifient la même chose
    En fait il s'agit du sens de recherche de la dernière ligne: tu pars du haut pour aller vers le bas.

    edit: si tu remplaces ActiveSheet par Worksheets("nom_de_ta_feuille"), ça fait la même erreur ?

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par pythagore3_14 Voir le message
    Mais mon ordi n'apprécie pas : "Erreur définie par l'application ou par l'objet"...
    Test en remplaçant les arguments par leurs valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.UsedRange.Sort  Key1:=Range("B2"), Order1:=1, Header:=1, _
            OrderCustom:=1, MatchCase:=False, Orientation:=1, _
            DataOption1:=0
    Les arguments peuvent changer d'une version à l'autre. Les valeurs restent les mêmes.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut
    Test en remplaçant les arguments par leurs valeurs
    J'ai essayé, j'obtiens le même résultat.

    si tu remplaces ActiveSheet par Worksheets("nom_de_ta_feuille"), ça fait la même erreur ?
    Non; désormais mon ordi se plaint que "L'indice n'appartient pas à la sélection"... ?? Je ne sais pas de quoi il parle mais en tout cas ma feuille 2 existe bel et bien.

    Les 2 signifient la même chose
    Ok, ok, je ne suis pas bien réveillée... Je voulais dire : "Orientation:=xlTopToBottom et DataOption1:=xlSortNormal" !

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Fais précéder la ligne de la sélection de la feuille et teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("feuil2").select
    ActiveSheet.UsedRange.Sort ........
    Ta feuille n'est pas protégée par hasard ?
    Pour les paramètres, tu as une touche magique : sur Sort, l'aide en ligne t'en dira plus que nous. Et en outre tu auras les arguments tels que tu dois les utiliser.
    Bonne journée

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

Discussions similaires

  1. Autoriser sélection d'une plage de cellule dans une feuille Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2008, 10h49
  2. Sélection d'une cellule sans taille définie
    Par raziel33 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/07/2008, 10h09
  3. Sélection d'une plage (je n'y arrive pas même avec la FAQ :'( )
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/01/2008, 15h26
  4. Userform pour sélection d'une plage de cellule
    Par humbp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2008, 13h41
  5. Sélection d'une plage de dates
    Par Bouanda dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2004, 21h27

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