Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/08/2011, 11h20   #1
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
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 :
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
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 11h49   #2
Membre Expert
 
Avatar de MarcelG
 
Homme Marcel GALANO
Développeur informatique
Inscription : juillet 2009
Messages : 644
Détails du profil
Informations personnelles :
Nom : Homme Marcel GALANO
Localisation : France, Maine et Loire (Pays de la Loire)

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

Informations forums :
Inscription : juillet 2009
Messages : 644
Points : 1 255
Points : 1 255
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 :
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
__________________

Bien Cordialement.

Marcel

Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


MarcelG est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 12/08/2011, 12h06   #3
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
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
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 19h17   #4
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 773
Points : 2 093
Points : 2 093
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 :
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é.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/08/2011, 18h27   #5
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
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
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web