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 feuille calcul [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité actif passionné
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité actif passionné

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut Tri feuille calcul
    Bonjour,
    Le code ci dessous génère un msg d'erreur "Utilisation incorrecte de la propriété"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set Ws = Worksheets("Base")
    Ws.Sort Key1:=Range("B"), Order1:=xlAscending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    Dans les exemples trouvés sur les forums je ne vois pas d'autres façons de l'utiliser, merci de me dire ce que je ne vois pas.

    Cordialement
    Daniel

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut tri feuille
    Bonjour danisoaz,

    Cela m'étonne de voir la méthode Sort affectée à un objet Worksheet plutôt que Range, d'autant si l'on consulte l'aide en ligne, du moins sur Excel 2003.

    Essaie plutôt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub essai2()
    Dim Ws as Worksheet
    Set Ws = Worksheets("Base")
    With Ws
            .Range("A1:B4").Sort Key1:=.Range("B1"), Order1:=xlAscending
    End With
    Set Ws = Nothing
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité actif passionné
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité actif passionné

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut
    Merci Marcel,

    Je voulais éviter d'avoir à définir la plage, mais il semble qu'effectivement ce soit une contrainte VBA. Si on enregistre une macro avec le menu données / trier on n'a pas ce blocage.
    Bon je vais me résoudre à compter lignes et colonnes !
    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu n'est pas obligé de définir une plage bien précise, tu peut faire le tri sur la colonne entière mais comme te le dis Marcel, l'objet Worksheet n'a pas de méthode "Sort" donc il te faut utiliser un range et si c'est la feuille entière que tu veux trier, utilise "Cells" qui a une méthode "Sort" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Tri()
     
        Dim Ws As Worksheet
     
        Set Ws = Worksheets("Feuil1")
     
        Ws.Range("B:B").Sort [B2], xlAscending
        'Ws.Cells.Sort [A2], xlAscending
     
    End Sub
    Hervé.

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité actif passionné
    Inscrit en
    Janvier 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité actif passionné

    Informations forums :
    Inscription : Janvier 2011
    Messages : 78
    Par défaut
    Bonjour Hervé,

    Merci de ton concours. De toutes façons je voulais trier sur 4 colonnes (pour alimenter un listview dans un ordre précis) et ce n'est pas possible. J'ai contourné la difficulté en ajoutant une colonne à mon listview qui contient la concaténation des 4 colonnes. Ce qui est encore bien plus souple. J'adore les listviews mais j'ai encore un petit détail à régler posé par ailleurs : à l'affichage du listview le premier enregistrement de la table est sélectionné par défaut... pas très gênant mais peu causer des manips inutiles !

    Cordialement
    Daniel

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

Discussions similaires

  1. [AC-2010] problème tri champs calculé de date
    Par Sefrou dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2011, 13h19
  2. Remplir feuille calcul avec résultat formulaire
    Par hmartin1414 dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2010, 14h18
  3. 3 tries(QRGroup1) + calculé les registres
    Par 810mcu dans le forum QuickReport
    Réponses: 3
    Dernier message: 13/06/2009, 11h21
  4. [VBA-E]Impression feuille calcul sans userform
    Par pombela dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2007, 19h09
  5. tri et calcul sur un champ
    Par PAUL87 dans le forum Access
    Réponses: 11
    Dernier message: 17/10/2005, 21h35

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