TRi

  • Initiateur de la discussion pias
  • Date de début
P

pias

Guest
Bonjour, le Forum

J’utilise le macro ci-dessus pour faire le tri par ordre alphabétique jusque à la ligne 1000.

Dans la ligne 1000 j’ai les totaux que j’aimerais afficher à la dernière ligne contenant une valeur, toute en sachant que il aura forcement quelques lignes vides.

Or dans le cas présent le macro mets les totaux dans la première ligne.
Est-ce qu’il y a un moyen avec cette macro de contourner le problème.

Merci d’avance
a+

@pias


Sub liste_prodA()

Range("A8:AZ1000").Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlGuess

End Sub
 
@

@+Thierry

Guest
Salut Pias, le Forum

Non, enfin peut-être mais c'est toujours assez prise de tête les Sort avec des formules dedans...

Ce que je conseille c'est çà

Sub SortAndSum()
Dim L As Integer
Dim Plage As Range
L = Range("A1001").End(xlUp).Row
Set Plage = Range("A8:A" & L)

Plage.Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlGuess

Range("A" & L + 1).Formula = "=SUM(A8:A" & L & ")"
End Sub

Ou encore

Sub SortAndSum()
Dim L As Integer
Dim Plage As Range

L = Range("A1001").End(xlUp).Row

Set Plage = Range("A8:A" & L)

Plage.Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlGuess

Range("A" & L + 1).Value = Application.WorksheetFunction.Sum(Plage)
End Sub

Si tu n'as pas besoin d'avoir la formule...

Bon Aprèm
@+Thierry
 
P

pias

Guest
Salut Thierry et le Forum

Merci Thierry.

Ça fais plus d’une heure que je me bas pour mettre en pratique les conseils de Thierry, mais rien a faire.

Alors j’ai décidé de vous envoyer en fichier joint un exemple vous comprendrez peut-être mieux.

Si Thierry ou quelqu’un d’autre a de la patience pour le corriger c’est très sympa.

Merci d’avance
a+ @pias
 

Pièces jointes

  • Exemple_tri.zip
    8.1 KB · Affichages: 10
  • Exemple_tri.zip
    8.1 KB · Affichages: 8
  • Exemple_tri.zip
    8.1 KB · Affichages: 9
@

@+Thierry

Guest
Re bonsoir Pias, le Forum

Toujours dans le même ordre d'idée que mon exemple précédent, voici ton fichier revu et corrigé...

Par contre ta plage c'est A8:AZ1000 ? là par contre le each cell risque d'être long...... faudra ptet voir une autre solution... là c'est juste sur Range("A8:D" & L) => L = dernière ligne non vide

Bonne Soirée
@+Thierry
 

Pièces jointes

  • Thierry_Exemple_tri.zip
    10.5 KB · Affichages: 9
J

JEAN MICHEL

Guest
bonjour a tous

ci joint ton classeur modifie mais je ne sais pas si j'ai tout compris
bonne soiree
 

Pièces jointes

  • Exemple_tri.zip
    8.2 KB · Affichages: 14
  • Exemple_tri.zip
    8.2 KB · Affichages: 16
  • Exemple_tri.zip
    8.2 KB · Affichages: 16
@

@+Thierry

Guest
Bonsoir Jean-Michel, re Pias, le Forum

Oui c'est une autre alternative que de copier directement la formule dans une zone hors tri et de la coller en paste value en fin de tableau trié. Mais il y a une faiblesse si tu cliques plusieurs fois pour lancer les macros de tri...

Donc je suggère, si Pias applique cette méthode, de colorier la plage collée et de faire un test avant lancement des macros pour vider vider les cellules en couleur dans sa plage de travail.

Exemple sur TriA
Sub TriA()
Dim Ligne As Integer
Dim Plage As Range, cell As Range

For Each cell In Range("A8:A999")
If cell.Interior.ColorIndex = 36 Then
With Range(Cells(cell.Row, 1), Cells(cell.Row, 4))
.Value = ""
.Interior.ColorIndex = xlNone
End With
End If
Next

Application.ScreenUpdating = False
Range("A8:AZ999").Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlGuess

Range("A1000:c1000").Copy

Ligne = ActiveSheet.Range("A999").End(xlUp).Row + 1
Range("A" & Ligne).PasteSpecial Paste:=xlValues
Range("A" & Ligne & ":D" & Ligne).Interior.ColorIndex = 36
End Sub

(l'ideal serait de n'avoir qu'une seule macro pour les TriA, TriB etc comme dans mon précédents exemple)

Bonne soirée
@+Thierry
 
P

pias

Guest
Bonsoir,

Re Thierry et Jean Michel

Merci beaucoup a vous deux.
Comme ça fais plaisir de voir dans ce forum que les gens sont toujours la, près a répondre aux questions.

Mon problème est résolu et j’ai encore envie de vous dire a vous, et a tous les gens de ce Forum que dans la vie :

"On ce lasse de tous sauf d’apprendre..."

Amicalement
@pias
 

Discussions similaires

Réponses
5
Affichages
265

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2