> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
21,99 €Enceinte connectée Amazon Echo Dot (3ème génération) avec assistant Alexa à 21,99 €
Valable jusqu'au 25 Septembre

Amazon fait une promotion sur l'enceinte Amazon Echo Dot (3ème génération) qui passe à 21,99 € (au lieu de 49,99 €). L'appareil piloté par la voix fonctionne avec Alexa, l’intelligence artificielle développée par Amazon. Vous pourrez avec elle écouter de la musique, interagir avec vos appareils domotiques, écouter les infos, la radio, connaître la météo et d’accéder à des milliers d’autres possibilités grâce aux Skills : recettes de cuisine, petits jeux, etc. Par rapport à la génération précédente, le son est amélioré et l'enceinte arbore un nouveau design. 


> Voir l'offre
99,99 €Pack de 2 têtes thermostatiques connectées tado à 99,99 €
Valable jusqu'au 24 Septembre

Amazon fait une belle promotion sur le lot de 2 têtes thermostatiques connectées tado qui passe à 99,99 € livrée gratuitement alors qu'on le trouve ailleurs à partir de 160 €. Remplacez le robinet thermostatique d'un radiateur pour le transformer en radiateur connecté et contrôlez votre chauffage depuis n'importe où avec l'application Tado pour iPhone et Android. Créez facilement vos planning de chauffre, créez des zones avec plusieurs têtes thermostatiques et faites des économies d'énergie. Les têtes tado peuvent être intégrées dans un système domotique (Jeedom, Domoticz) et peuvent être contrôlées à la voix avec Alexa, HomeKit, Assistant Google et IFTTT.

Nécessite un kit de démarrage avec un thermostat connecté comme ce modèle sans fil également en promotion.


> Voir l'offre
35,69 €Clavier Microsoft Ergonomic à 35,69 €
Valable jusqu'au 25 Septembre

Amazon fait une promotion sur le clavier Microsoft Ergonomic qui passe à 35,69 € au lieu de 65,99 €. Sa forme naturelle arquée protège votre poignet et votre main des tensions, et améliore votre rythme de saisie pour accroître votre nombre de mots par minute. De plus, le repose-poignet rembourré et ergonomique, recouvert d'un tissu haut de gamme, apporte un confort non négligeable tout au long de la journée et une position neutre des poignets.


> 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