× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Probleme excel - tri dans macro Excel 2007Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
djambo
  Posté le 13/06/2013 @ 17:26 
Aller en bas de la page 
Petit astucien

Bonjour,

Après de nombreuses recherche je n'arrive pas à trouver comment trier les dix plus grandes valeurs et les placer dans cette macro

La colonne B est la désignation et P la colonne a triée qui représente un pourcentage

Je voudrais placer la valeur du tri dans cette fonction à la place des "range" car là, j'ai la totalité des lignes

.SetSourceData Source:=Sheets(1).Application.Union(Range("B14:B128"), Range("P14:P128"))

Subgraphique()
'
' graphique Macro
'
'Création d'un graphique dans la feuille active.
ActiveSheet.Shapes.AddChart
'Activation du graphique
ActiveSheet.ChartObjects(1).Activate
'Propriétés du graphique
With ActiveChart
' Titre du Graphique
.HasTitle = True
.ChartTitle.Text = "Comparatif"
'Selection de la source des données
.SetSourceData Source:=Sheets(1).Application.Union(Range("B14:B28"), Range("P14:P28"))
'Définition du Type du Graphique en colonne
.ChartType = xl3DColumn
ActiveChart.ChartType = xlColumnClustered
ActiveChart.PlotArea.Select
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 43
ActiveChart.ChartArea.Select

End With

EndSub



Modifié par djambo le 13/06/2013 17:31
Publicité
rj390111
 Posté le 13/06/2013 à 21:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Il faudrait trier les données par ordre décroissant avant de sélectionner les 10 premières lignes de la plage.

djambo
 Posté le 13/06/2013 à 21:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonoir,

j'en conviens mais je ne sais pas comme remplacer les definition de cellules dans range dans cette instruction

.SetSourceData Source:=Sheets(1).Application.Union(Range("B14:B28"), Range("P14:P28"))


il y a bien ce type SORT

Range("B14:P28").Sort Key1:=Range("P1"), Order1:=xlAscending,,, Header:=xlGuess, OrderCustom:=1,MatchCase:= False, Orientation:=xlTopToBottom

mais son utilisation n'est pas simple

comment l'utiliser, peut-on dire variable range(....).sort....., mais ensuite dans le .setsourcedate comment l'intégrer

cordialement

rj390111
 Posté le 14/06/2013 à 10:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Je viens de remarquer

.SetSourceData Source:=Sheets(1).Application.Union(Range("B14:B128"), Range("P14:P128"))

et dans la procédure

.SetSourceData Source:=Sheets(1).Application.Union(Range("B14:B28"), Range("P14:P28"))

De plus entre B14 et B28 il y 15 lignes et pas 10

djambo
 Posté le 14/06/2013 à 14:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Oui tu as raison, mais c'était pour un affichage du graphique pour y voir la dimension pour dix sélections.

Je voudrais cette instruction remplacer le contenu du range par un tableau qui représente les données triés et si on ne peux placer un tableau, chose que je n'ai pas réussis à faire, il y a la fonction Sort, mais là encore comme faire.

P étant la colonne à trier

B étant la désignation de la zone triée

.SetSourceData Source:=Sheets(1).Application.Union(Range("tableau"), Range("tableau"))

Cette application permet de donner un comparatif sur les antivirus en teste personnel, l'image devrais te faire comprendre mieux.

Les données dans le tableau ne sont pas réelles, rien que du teste.

Cordialement,



Modifié par djambo le 14/06/2013 14:52
rj390111
 Posté le 14/06/2013 à 18:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re,

Voilà un exemple de tri par âge d'une liste d'enfants. Je ne sais pas si cela t'aidera, mais tu peux voir comment je délimite la plage à trier.

Sub Tri_Age() ' ' Tri par age croissant dans Excel 2007

''Lig1 = première ligne derlig = dernière ligne du tableau col1 1ère colonne dercol = dernière colonne du tableau

Dim lig1 As Integer, derlig As Integer, col1 As Integer, dercol As Integer

ActiveSheet.Unprotect

'Déterminer les limites du tableau

lig1 = 3: derlig = Range("A65536").End(xlUp).Row

col1 = 1: dercol = Range("IV3").End(xlToLeft).Column

'Sélectionner le tableau en fonction des limites trouvées

Range(Cells(lig1, col1), Cells(derlig, dercol)).Select

'Tri par âge de la liste d'enfants les âges sont en colone 7

ActiveWorkbook.Worksheets("Renseignements").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Renseignements").Sort.SortFields.Add Key:=Range( _

Cells(lig1 + 1, 7), Cells(derlig, 7)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("Renseignements").Sort

.SetRange Range(Cells(lig1, col1), Cells(derlig, dercol))

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'Remet le curseur en A3

Range("A3").Select

ActiveSheet.Protect

End Sub

Si tu pouvais mettre ton fichier avec des données bidons on pourrait programmer la procédure pour fair le tri puis la sélection des données du graphique.

djambo
 Posté le 14/06/2013 à 18:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ok, je te mets le fichier, je suis en version excel 2007

http://www.sendspace.com/file/jscbb7

normalement la version fonctionne sans le tri bien sûr, une amie l'a essayée, donc le voilà

merci de ton aide,

djambo
 Posté le 14/06/2013 à 21:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir à tous,

Un grand merci à rj390111 sans qui, mon problème ne serais pas résolu.

Cordialement,


Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
-25%Gardena : jusqu'à -25% sur les articles de jardin
Valable jusqu'au 30 Mai

Amazon fait une promotion sur une sélection d'articles de jardin bénéficient de remises jusqu'à -25%. Vous trouverez des pompes d'arrosage, des programmateurs, des raccords, des accessoires pour tondeuses, des outils, etc.


> Voir l'offre
374,99 €Carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro 1 To à 374,99 €
Valable jusqu'au 30 Mai

Amazon fait une vente flash sur la carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro d'une capacité de 1 To qui passe à 374,99 € alors qu'on la trouve ailleurs à partir de 500 €. Cette carte mémoire offre des vitesses jusqu'à 170 Mo/s en lecture et 90 Mo/s en écriture et intègre des mécanismes afin de gérer l'usure des cellules de la carte et augmenter ainsi sa durée de vie. Une valeur sûre pour les plus exigeants en FullHD et 4K.


> Voir l'offre
Gratuit3 mois d'abonnement à Amazon Music Unlimited gratuits
Valable jusqu'au 26 Juin

Amazon vous permet d'essayer son service de streaming musical pendant 3 mois gratuitement. Avec Amazon Music Unlimited, accédez à plus de 50 millions de titres, sans publicité et en illimité sur tous vos appareils : smartphone, tablette, PC/Mac, Fire, Alexa. Vous avez même la possibilité de télécharger vos playlists pour des écoutes hors connexion. A la fin de ces 3 mois, vous pourrez basculer vers l'offre payante à 9,99 € / mois ou bien arrêter sans frais le service. A noter l'existence d'une offre famille à 14,99 € / mois qui permet jusqu'à 6 utilisateurs d'écouter leur musique à tout moment et sur leurs appareils préférés. Vous pouvez annuler l'abonnement à tout moment.


> Voir l'offre

Sujets relatifs
macro majuscule dans excel 2007
probleme avec macro sur excel 2007
2 pages par feuille dans macro excel
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
Creation d' une boucle macro dans fichier EXCEL pour impression
Récupération dates dans tableau excel 2007
besoin d'une macro excel 2007
problème de filtre dans Excel 2010
[Excel 2007] Macro : Sélection d'un tableau selon sa longueur variable
excel 2007 macro mise en page, quadrillage, filtre
Plus de sujets relatifs à Probleme excel - tri dans macro Excel 2007
 > Tous les forums > Forum Bureautique