tri d'un bloc de valeurs

Le
Didier
Bonjour,

je tourne en rond sur un problème que je croyais simple et je ne trouve
rien (ou je cherche mal) sur le net :
Soit une seule série de valeurs numériques, mais disposées en plusieurs
colonnes !!
Ex :
45 25 47
74 10 63
12 78 4
10 13 15

Je voudrais les trier en ordre croissant pour obtenir :

4 13 47
10 15 63
10 25 74
12 45 78

Vous me direz qu'il faut avoir l'esprit tordu pour organiser les données
d'une façon aussi peu propice à leur traitement, mais cela me
permettrait de les imprimer facilement sur une seule feuille A4.
S'il n'y a pas de solution simple, je vais réorganiser mes données en
une seule colonne. Là plus aucun problème pour les traiter, mais pour
les imprimer

Si quelqu'un a une idée je suis preneur
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
stéphane
Le #17379811
Bonjour,

le plus simple est de mettre les données sur une seule colonne, puis de
faire une feuille pour l'impression :

par exemple dans la feuille2 d'impression mettre en colonne A une référence
à la feuille1 cellule A1 à A4 , En colonne B référence à A5 à A8 , et ainsi
de suite .........


Stéphane

"Didier" 48e1d432$0$859$
Bonjour,

je tourne en rond sur un problème que je croyais simple et je ne trouve
rien (ou je cherche mal) sur le net :
Soit une seule série de valeurs numériques, mais disposées en plusieurs
colonnes !!
Ex :
45 25 47
74 10 63
12 78 4
10 13 15

Je voudrais les trier en ordre croissant pour obtenir :

4 13 47
10 15 63
10 25 74
12 45 78

Vous me direz qu'il faut avoir l'esprit tordu pour organiser les données
d'une façon aussi peu propice à leur traitement, mais cela me permettrait
de les imprimer facilement sur une seule feuille A4.
S'il n'y a pas de solution simple, je vais réorganiser mes données en une
seule colonne. Là plus aucun problème pour les traiter, mais pour les
imprimer ...

Si quelqu'un a une idée je suis preneur ...
Merci


JPMonnier
Le #17380421
Bonjour, voici une proc qui le fait mais un peu compliqué
valeurs pacées en a2: c5 pour l'exemple

Sub Tri()
x = 2: y = 5
nb1 = Application.WorksheetFunction.CountA(Range("a2:c5"))
Do While nb1 <> 0
For Each n In [a2:c5]
c = c + 1

If n = Application.WorksheetFunction.Min(Range("a2:c5")) Then
Cells(x, y) = n
x = x + 1
n.Clear
nb1 = Application.WorksheetFunction.CountA(Range("a2:c5"))
If x = 6 Then
x = 2: y = y + 1
End If
End If
Next
Loop
Range("E2:G5").Select
Application.CutCopyMode = False
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
Range("E2:G5").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A2").Select
End Sub
--
Cordialement


"Didier" news:48e1d432$0$859$
Bonjour,

je tourne en rond sur un problème que je croyais simple et je ne trouve
rien (ou je cherche mal) sur le net :
Soit une seule série de valeurs numériques, mais disposées en plusieurs
colonnes !!
Ex :
45 25 47
74 10 63
12 78 4
10 13 15

Je voudrais les trier en ordre croissant pour obtenir :

4 13 47
10 15 63
10 25 74
12 45 78

Vous me direz qu'il faut avoir l'esprit tordu pour organiser les données
d'une façon aussi peu propice à leur traitement, mais cela me permettrait
de les imprimer facilement sur une seule feuille A4.
S'il n'y a pas de solution simple, je vais réorganiser mes données en une
seule colonne. Là plus aucun problème pour les traiter, mais pour les
imprimer ...

Si quelqu'un a une idée je suis preneur ...
Merci


FFO
Le #17380371
Salut Didier

Je te propose ce code qui rapporte toutes tes données dans la 1° colonne
libre de droite pour les trier puis les redistribuers ainsi triées dans les
colonnes suivantes avec la même présentation que tes colonnes sources
Colonne A B C à traiter sur 4 lignes
Colonne D toutes les données triées
Colonne E F G données traitées sur 4 lignes

Colonne = Mid(Range("IV1").End(xlToLeft).Offset(0, 1).Address, 2, 1)
Range("A1").Activate
Do While ActiveCell <> ""
Range(Range(Colonne & "65535").End(xlUp).Offset(1, 0).Address, Colonne &
Range(Colonne & "65535").End(xlUp).Row + Range(Cells(65535,
ActiveCell.Column).Address).End(xlUp).Row).Value = Range(Cells(1,
ActiveCell.Column).Address, Range(Cells(65535,
ActiveCell.Column).Address).End(xlUp)).Value
ActiveCell.Offset(0, 1).Activate
Loop
Columns(Colonne & ":" & Colonne).Sort Key1:=Range(Colonne & "1"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Activate
i = 1
Ligne = 0
Do While ActiveCell <> ""
Range(Cells(1, Range(Colonne & "1").Column + i).Address,
Cells(Range(Cells(65535, ActiveCell.Column).Address).End(xlUp).Row,
Range(Colonne & "1").Column + i).Address).Value = Range(Colonne & Ligne + 1,
Colonne & Ligne + Range(Cells(65535,
ActiveCell.Column).Address).End(xlUp).Row).Value
i = i + 1
Ligne = Ligne + Range(Cells(65535, ActiveCell.Column).Address).End(xlUp).Row
ActiveCell.Offset(0, 1).Activate
Loop

Celà devrait convenir
Dis moi !!!!
Didier
Le #17383481
Re bonjour,

Je viens de tester les 2 procédures fournies par Stéphane et JPMonnier,
cela fonctionne très bien, avec cela je devrais pouvoir adapter le code
à ma feuille.
Merci pour votre aide.
Didier
Publicité
Poster une réponse
Anonyme