> 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
Processeur Intel Core i5-13600K (14 coeurs, socket 1700) à 310,16 € livré
310,16 € 369 € -16% @Amazon Allemagne

Amazon Allemagne fait une promotion sur le processeur Intel Core i5-13600K qui passe à 305,53 €. Comptez 4,63 € pour la livraison en France soit un total de 310,16 € livré. On le trouve ailleurs à partir de 369 €. En offrant encore plus de puissance pour les programmes exigeants et les jeux et plus de cœurs pour les tâches de fond, les processeurs Intel Core de 13ème génération vous permettent de faire encore plus de choses et encore plus rapidement. Jeux, multitâche intensif, création de contenu ou streaming, les processeurs Intel Raptor Lake sont la solution idéale pour aller au-delà de ce que vous pouviez imaginer en matière de puissance et de performance. Des jeux fluides, un PC qui ne ralentit pas, des tâches multiples et simultanées, tout cela est possible avec un processeur Intel Core de 13ème génération.


Voir le bon plan
Perceuse sans-fil Bosch Prol GSB 12V-15 + 39 accessoires + 2 Batteries 2 AH à 95,39 €
95,39 € 130 € -27% @Amazon

Amazon fait actuellement une belle promotion sur la perceuse sans fil Bosch Professional GSR 12V-15 avec 2 batteries 12V 2.0 AH au lithium, sa pochette et 39 pièces d'accessoires à 95,39 € grâce à un coupon à active sur la page du produit alors qu'on la trouve ailleurs à partir de 130 €.


Voir le bon plan
SSD Interne M.2 NVMe PCIe 4.0 Samsung 980 PRO 2 To à 134,98 € livré
134,98 € 180 € -25% @Amazon

Amazon Italie fait une promotion sur le SSD Interne M.2 NVMe PCIe 4.0 Samsung 980 PRO 2 To qui passe à 130,37 € (avec la TVA ajustée). Comptez 4,61 € pour la livraison en France, soit un total de 134,98 € livré en France. On le trouve ailleurs à partir de 180 €. Ce SSD offre des taux de transfert de 7000 Mo /s en lecture et 5100 Mo/s en écriture. Une bonne affaire.


Voir le bon plan
Boitier PC Corsair 4000D Airflow avec fenêtre à 79 €
79 € 129 € -39% @Amazon Belgique

Amazon Belgique fait une promotion sur le boitier PC Corsair 4000D Airflow avec fenêtre à 79 € au lieu de 129 € ailleurs. Ce boitier moyen Tour propose un câble management optimisé afin de favoriser un montage propre et rapide. Les câbles ne gênent pas la circulation du flux d'air et l'aspect visuel reste soigné. 2 ventilateurs inclus permettent un refroidissement parfait de la tour et de ses composants. En outre, les emplacements supplémentaires pour ventilateurs et systèmes de watercooling AIO offrent une grande polyvalence ainsi qu'une belle évolutivité au boîtier. 


Voir le bon plan
SSD WD Black SN850X 1 To (PCIe Gen4, NMVe M.2, 7300 Mo/s) à 87,31 € livré
87,31 € 120 € -27% @Amazon Belgique

Amazon Royaume-Uni fait une promotion sur le SSD WD Black SN850X 1 To (NMVe M.2) qui passe à 69,95 £. Avec la conversion en euros et la livraison en France, il vous reviendra à 87,31 € tout compris alors qu'on le trouve ailleurs à partir de 120 €.

Ce SSD utilise une interface M.2 NVMe PCIe Gen4 pour une connexion simple et des performances exceptionnelles : jusqu’à 7300 Mo/s en lecture séquentielle et jusqu’à 6300 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans. Ce SSD est compatible PS5.


Voir le bon plan
Station de charge portable Bluetti AC200Max LiFePO4 2048Wh/2200W (évolutive jusqu'à 8192 Wh) à 1299 €
1299 € 2199 € -41% @Geekbuying

Geebuying fait une belle promotion sur la station de charge portable Bluetti AC200Max 2048Wh/2000W qui passe à 1299 € grâce au code promo NNNFRSOLDEACMAX. On la trouve ailleurs à partir de 2199 €.

Cette Power Station offre une capacité de 2048Wh et 4 sorties AC de 2200W (pic à 4800W). Elle peut alimenter n'importe quel appareil électrique : bricolage, électroménager, électronique, informatique, ... La batterie LiFePO4 supporte plus de 3500 cycles de charge. Elle fournit suffisamment de jus pour faire fonctionner vos appareils essentiels pendant des heures. Elle possède également 4 ports USB, un port USB-C PD de 60W et deux ports de charge sans fil 15W.

La particularité de cette batterie est qu'elle possède une capacité extensible avec des modules externes pour atteindre jusqu'à 8192 Wh.

La batterie peut être rechargée via l'adaptateur secteur fourni, des panneaux solaires ou une combinaison des 2.


Voir le bon plan

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