Améliorer une macro: copier des valeurs sr plusieurs fl en ordre crois

Améliorer une macro: copier des valeurs sr plusieurs fl en ordre crois - VB/VBA/VBS - Programmation

Marsh Posté le 06-10-2010 à 14:26:08    

Bonjour à tous,
 
Voilà, j'ai une dizaine de "Sheets" pour lesquelles je souhaite copier une valeur et la classer par ordre croissant. La dite valeur ce trouve au même endroit sur chaque feuille.
 
 
J'ai pensé à utiliser un "For each sh".. copier valeur avec le nom, ensuite, une fois que la macro a terminé, de faire un "select all" puis data sort du plus grand au plus petit.
 
Mais peut-être il y a un moyen plus rapide, qu'en pensez-vous?
 

Reply

Marsh Posté le 06-10-2010 à 14:26:08   

Reply

Marsh Posté le 07-10-2010 à 10:11:35    

UNE valeur par ordre alphabetique ??
 
Explique plus clairement ton besoin...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 11-10-2010 à 19:45:42    

SuppotDeSaTante a écrit :

UNE valeur par ordre alphabetique ??
 
Explique plus clairement ton besoin...


 
Bonsoir,  
 
j'ai 13 personnes (un nom par feuille), chacun à le même tableau avec une somme total.  Je voudrais que la macro copie la valeur totale ainsi que le nom sur une feuille supplémentaire qui représenterai le classement général de la journée.  Bien entendu, je voudrais qu'il mette la personne qui a eu la valeur la plus élevée en 1er, ensuite le second et ainsi de suite.  
 
Bien à toi
Coellophysis


Message édité par Coellophysis le 11-10-2010 à 19:47:15
Reply

Marsh Posté le 12-10-2010 à 09:24:28    

Hello
 
Ok, je comprends mieux :p
 
Essaie qqchose comme ceci :

Code :
  1. Sub Coellophysis()
  2.     NomPageTotal = "Somme" 'feuille sur laquelle mettre les totaux
  3.     CelluleTotal = "A21" 'cellule où se trouve tes totaux par personnes/onglet
  4.     'On recupere la ligne et la colonne de 'CelluleTotal'
  5.     Col = Range(CelluleTotal).Column
  6.     Ligne = Range(CelluleTotal).Row
  7.     'On passe sur chaque feuille
  8.     For x = 1 To Sheets.Count
  9.         'Si le nom de la feuille est different de celle des totaux
  10.         If Sheets(x).Name <> NomPageTotal Then
  11.             'On met en colonne A de la feuille des Totaux les noms des onglets
  12.             Sheets(NomPageTotal).Cells(x, 1) = Sheets(x).Name
  13.             'On met en colonne B de la feuille des Totaux les valeurs de chaque onglet _
  14.             de la cellule 'CelluleTotal'
  15.             Sheets(NomPageTotal).Cells(x, 2) = Sheets(x).Cells(Ligne, Col)
  16.         End If
  17.     Next x
  18.     'On selectionne la page des totaux
  19.     Sheets(NomPageTotal).Select
  20.     'On selectionne les colonnes A et B
  21.     Columns("A:B" ).Select
  22.     'On trie par ordre decroissant de B, qui contient les montants
  23.     Selection.Sort Key1:=Range("B1" ), Order1:=xlDescending
  24.     'On selectionne A1
  25.     Range("A1" ).Select
  26. End Sub


 
;)


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-10-2010 à 19:56:57    


Merci dje69r
 
ça a marché du tonnerre ;D

Reply

Marsh Posté le 24-10-2010 à 23:52:46    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed