> 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
SSD WD Blue SN570 1 To (NMVe M.2, 3500 Mo/s) à 53,90 €
53,90 € 80 € -33% @Amazon Belgique

Amazon Belgique fait une promotion sur le SSD WD Blue SN570 1 To (NMVe M.2) qui passe à 53,90 € alors qu'on le trouve ailleurs à partir de 80 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen3 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 3 500 Mo/s en lecture séquentielle et jusqu’à 3 000 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.

L'offre n'est valable que pour les Belges ou les frontaliers qui peuvent se faire livrer en relais en Belgique. Pour les autres, il faudra vous tourner vers cette offre à 59,99 €.


Voir le bon plan
Ecran 27 pouces LG Ultragear 27GL63T (FullHD IPS, 144 Hz, 1ms, FreeSync/Gsync compatible) à 199,99 €
199,99 € 250 € -20% @Amazon

Amazon fait belle une promotion sur l'écran LG Ultragear 27GL63T qui passe à 199,99 € au lieu de 250 € ailleurs. Cet écran possède une dalle IPS 27 pouces FHD (1920x1080) à 144 Hz, un temps de réponse de 1 ms. Il est compatible Nvidia G-SYNC et Adaptive Sync.


Voir le bon plan
Enceinte bluetooth Anker Soundcore Motion Boom à 74,99 €
74,99 € 99,99 € -25% @Amazon

Amazon fait une promotion sur la très bonne enceinte bluetooth Anker Soundcore Motion Boom qui passe à 74,99 €. On la trouve ailleurs à partir de 99,99 €. La livraison est gratuite.

Cette enceinte offre un son Hi-Res 30W et supporte le bluetooth 5.0 et l'aptX. L'enceinte est étanche IPX7, flotte, possède une poignée et offre jusqu'à 24 heures d'autonomie. Rechargement via un port USB-C.


Voir le bon plan
Mini PC BMAX B7 Pro (Core i5-1145G7, 16 Go RAM, SSD 1 To, WiFi 6, BT 5.2, Windows 11) à 298 €
298 € 450 € -34% @Geekbuying

Geekbuying fait une belle promotion sur le très bon mini PC BMAX B7 Pro qui passe à 298 € avec le code promo NNNFRSOLDEB7PRO. On le trouve habituellement autour de 450 €. Ce mini PC intègre un processeur Intel Core i5-1145G7 (4 coeurs), 16 Go de RAM DDR4 et un SSD SATA de 1 To au format M.2 (un emplacement 2.5' libre est également disponible). Il possède un chip graphique Iris Xe qui fera tourner tous vos petits jeux. Il intègre le WiFi 6, le bluetooth 5.2, un port Ethernet Gigabit, 2 ports USB 3.0, 2 ports USB 2.0, un port USB-C et deux connecteurs HDMI. Le tout tourne sous Windows 11 Pro.

Une excellente affaire pour un PC très performant, silencieux et qui ne prendra pas de place ! 


Voir le bon plan
SSD Interne M.2 NVMe Samsung 980 1 To (3500 Mo/s) à 72,12 € livré
72,12 € 85,99 € -16% @Geekbuying

Amazon Royaume-Uni fait une promotion sur le SSD Interne M.2 NVMe PCIe 3.0 Samsung 980 1 To qui passe à 57,29 £. Avec la livraison en France et la conversion en euros, il vous reviendra à 72,12 € tout compris (il n'y a pas de douane). Ce SSD offre des taux de transfert de 3500 Mo/s.


Voir le bon plan
SSD PNY CS900 2 To à 99,99 €
99,99 € 145 € -31% @Cdiscount

Cdiscount fait une belle promotion sur le SSD PNY CS900 2 To qui passe à 99,99 € alors qu'on le trouve ailleurs à partir de 145 €. Ce SSD offre des vitesses d'écriture de 515 Mo/s et de lecture à 550 Mo/s. Il est garanti 3 ans.


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