je voudrais trier de manière très rapide et horizontalement des nombres sur
: 5 colonnes et 3000 lignes (par exemple) ("a1:e3000") . Si je pends comme
exemple la macro automatisée en mettant ma plage de cellule, cela ne me tri
qu'une seule ligne ! qui peut me donner la solution ? Merci par avance .
(Vous l'avez compris je débute). (voici l'exemple ...qui ne fonctionne ...pas
!)
Range("a1:e3000").Select
Selection.Sort Key1:=Range("a1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
Je pense que le problème était du à la quantité importante (autre que ma plage de données à trier) qui se trouvaient en Feuille 1 . j'ai donc essayé d'envoyer ma plage à trier en feuille 2, pour la récupérer ensuite en feuille 1.
Quelle que soit la raison, ton Prg fonctionne rapidement et c'est le principal. Je peux désormais continuer.
Merci mille fois encore - ce forum est super - cordialement -
Bonjour Migamamba,
tu peux m'envoyer ton classeur directement dans ma BAL... seulement la feuille dont tu veux effectuer le tri horizontal est suffisant
Salutations!
"Migamamba" a écrit dans le message de news:
Je tiens à vous remercier pour votre patience mais je craque. .... J'ai passé une partie de la nuit ; la journée ; avec vos aides en plus et cela ne fonctionne pas correctement. J'ai du souci pour l'avenir. Peut-être suis-je fatigué. Je ne comprends plus rien. Même en copiant et collant les exemple fournies ; eh bien non.!!!!! Je vais prendre du recul. merci encore !!!
Je suis allé dans l'aide EXCEL " petite.valeur - grande valeur - mais pas plus de résultat.
salutations à vous deux...
Testé sur un vieux PC ... 2500 lignes -> 2 secondes
Essaie ceci :
'------------------------------------- Sub TriHorizontale(Rg As Range)
Application.EnableEvents = False Application.Calculation = xlCalculationManual For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight Next Application.Calculation = xlCalculationManual Application.EnableEvents = True End Sub '-------------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
Désolé de revenir sur ce problème mais bien que j'enlève cette fonctioN (et ça marche), le tri met un temps très long pour s'effectuer (exemple : 2000 lignes = + de 3 minutes !) Est ce normal, n'existe-t-il pas une méthode plus rapide ?
cordialement ....
Va y de cette façon,
:"DataOption1=xlNormal" = Paramêtre version excel 2003. il n'est probablement pas disponible sur ta version. Il s'agit tout simplement de l'enlever.
'--------------------------------- Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight Next End Sub '---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
re,
Après ta modif, (boucle manquante),
Il subsiste toujours l'erreur 1004 .
- Si je supprime la phrase :"DataOption1=xlNormal" cette erreur disparait et le tri fonctionne, mais , il y a un mais hélas, pour trier une plage comportant 5 colonnes et 2000 lignes, l'opération s'effectue en + de 3 minutes !!!! j'ai chronométré . Cette lenteur est-elle normale ?
merci encore et @ +
Bonjour Migamamba,
Tu as bien raison, j'ai omis la boucle dans la procédure "TriHorizontale"
Utilise plutôt ceci:
'----------------------------- Sub test()
Dim Plg As Range With Worksheets("Feuil1") Set Plg = .Range("A1:A" & _ .Range("A65536").End(xlUp).Row).Resize(, 5) End With
'--------------------------------- Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal Next End Sub '---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
Bonjour Michdenis et merci de m'avoir répondu aussi rapidement.
2°) Ce qui est étrange c'est que si je fais un copier/coller, (sur autant de ligne que je le souhaite), de ma 1ère ligne, mes nombres sont tous triés. En revanche, si je saisis des nombre différents à chaque ligne, seule la première sera triée ? Quid ?
merci e m'aider à percer ce mystère* (*pour moi) - cordialement -
Bonjour Migamamba,
Voici une façon de faire : copie ce qui suit dans un module standard : Dans la procédure "Test", adapte le nom de la feuille et la première colonne où sont situées tes données.
'--------------------------------- Sub test()
Dim Plg As Range With Worksheets("Feuil1") Set Plg = .Range("A1:A" & _ .Range("A65536").End(xlUp).Row).Resize(, 5) End With
je voudrais trier de manière très rapide et horizontalement des nombres sur : 5 colonnes et 3000 lignes (par exemple) ("a1:e3000") . Si je pends comme exemple la macro automatisée en mettant ma plage de cellule, cela ne me tri qu'une seule ligne ! qui peut me donner la solution ? Merci par avance . (Vous l'avez compris je débute). (voici l'exemple ...qui ne fonctionne ...pas !) Range("a1:e3000").Select Selection.Sort Key1:=Range("a1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight
Michdenis,
Ca y est ça fonctionne !! Ouf...
Je pense que le problème était du à la quantité importante (autre que ma
plage de données à trier) qui se trouvaient en Feuille 1 . j'ai donc essayé
d'envoyer ma plage à trier en feuille 2, pour la récupérer ensuite en feuille
1.
Quelle que soit la raison, ton Prg fonctionne rapidement et c'est le
principal. Je peux désormais continuer.
Merci mille fois encore - ce forum est super - cordialement -
Bonjour Migamamba,
tu peux m'envoyer ton classeur directement dans ma BAL... seulement la feuille dont tu veux effectuer le tri horizontal est
suffisant
Salutations!
"Migamamba" <Migamamba@discussions.microsoft.com> a écrit dans le message de news:
4B6ECA62-F28B-4EBE-A1CF-ECD0C609C73E@microsoft.com...
Je tiens à vous remercier pour votre patience mais je craque.
....
J'ai passé une partie de la nuit ; la journée ; avec vos aides en plus et
cela ne fonctionne pas correctement.
J'ai du souci pour l'avenir. Peut-être suis-je fatigué. Je ne comprends plus
rien.
Même en copiant et collant les exemple fournies ; eh bien non.!!!!! Je vais
prendre du recul. merci encore !!!
Je suis allé dans l'aide EXCEL " petite.valeur - grande valeur - mais pas
plus de résultat.
salutations à vous deux...
Testé sur un vieux PC ... 2500 lignes -> 2 secondes
Essaie ceci :
'-------------------------------------
Sub TriHorizontale(Rg As Range)
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
For Each R In Rg.Rows
R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight
Next
Application.Calculation = xlCalculationManual
Application.EnableEvents = True
End Sub
'-------------------------------------
Salutations!
"Migamamba" <Migamamba@discussions.microsoft.com> a écrit dans le message de news:
2A1FCADE-B470-49CC-B09D-2CA392B710D3@microsoft.com...
Désolé de revenir sur ce problème mais bien que j'enlève cette fonctioN (et
ça marche), le tri met un temps très long pour s'effectuer (exemple : 2000
lignes = + de 3 minutes !)
Est ce normal, n'existe-t-il pas une méthode plus rapide ?
cordialement ....
Va y de cette façon,
:"DataOption1=xlNormal" = Paramêtre version excel 2003. il n'est probablement pas disponible sur ta version. Il s'agit tout
simplement de l'enlever.
'---------------------------------
Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows
R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight
Next
End Sub
'---------------------------------
Salutations!
"Migamamba" <Migamamba@discussions.microsoft.com> a écrit dans le message de news:
A3BFF4BA-4F99-4126-A809-3B02BFE9D1CF@microsoft.com...
re,
Après ta modif, (boucle manquante),
Il subsiste toujours l'erreur 1004 .
- Si je supprime la phrase :"DataOption1=xlNormal"
cette erreur disparait et le tri fonctionne, mais , il y a un mais hélas,
pour trier une plage comportant 5 colonnes et 2000 lignes, l'opération
s'effectue en + de 3 minutes !!!! j'ai chronométré . Cette lenteur est-elle
normale ?
merci encore et @ +
Bonjour Migamamba,
Tu as bien raison, j'ai omis la boucle dans la procédure "TriHorizontale"
Utilise plutôt ceci:
'-----------------------------
Sub test()
Dim Plg As Range
With Worksheets("Feuil1")
Set Plg = .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Resize(, 5)
End With
'---------------------------------
Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows
R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
Next
End Sub
'---------------------------------
Salutations!
"Migamamba" <Migamamba@discussions.microsoft.com> a écrit dans le message de news:
9A80EAAC-D6B5-4702-A0D9-9BFF08BC7C4E@microsoft.com...
Bonjour Michdenis et merci de m'avoir répondu aussi rapidement.
2°) Ce qui est étrange c'est que si je fais un copier/coller, (sur autant de
ligne que je le souhaite), de ma 1ère ligne, mes nombres sont tous triés.
En revanche, si je saisis des nombre différents à chaque ligne, seule
la première sera triée ? Quid ?
merci e m'aider à percer ce mystère* (*pour moi) - cordialement -
Bonjour Migamamba,
Voici une façon de faire : copie ce qui suit dans un module standard :
Dans la procédure "Test", adapte le nom de la feuille et la première
colonne où sont situées tes données.
'---------------------------------
Sub test()
Dim Plg As Range
With Worksheets("Feuil1")
Set Plg = .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Resize(, 5)
End With
"Migamamba" <Migamamba@discussions.microsoft.com> a écrit dans le message de news:
FF932399-0CF4-448F-AA05-11B5CA42E73C@microsoft.com...
bonjour, help,
je voudrais trier de manière très rapide et horizontalement des nombres sur
: 5 colonnes et 3000 lignes (par exemple) ("a1:e3000") . Si je pends comme
exemple la macro automatisée en mettant ma plage de cellule, cela ne me tri
qu'une seule ligne ! qui peut me donner la solution ? Merci par avance .
(Vous l'avez compris je débute). (voici l'exemple ...qui ne fonctionne ...pas
!)
Range("a1:e3000").Select
Selection.Sort Key1:=Range("a1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight
Je pense que le problème était du à la quantité importante (autre que ma plage de données à trier) qui se trouvaient en Feuille 1 . j'ai donc essayé d'envoyer ma plage à trier en feuille 2, pour la récupérer ensuite en feuille 1.
Quelle que soit la raison, ton Prg fonctionne rapidement et c'est le principal. Je peux désormais continuer.
Merci mille fois encore - ce forum est super - cordialement -
Bonjour Migamamba,
tu peux m'envoyer ton classeur directement dans ma BAL... seulement la feuille dont tu veux effectuer le tri horizontal est suffisant
Salutations!
"Migamamba" a écrit dans le message de news:
Je tiens à vous remercier pour votre patience mais je craque. .... J'ai passé une partie de la nuit ; la journée ; avec vos aides en plus et cela ne fonctionne pas correctement. J'ai du souci pour l'avenir. Peut-être suis-je fatigué. Je ne comprends plus rien. Même en copiant et collant les exemple fournies ; eh bien non.!!!!! Je vais prendre du recul. merci encore !!!
Je suis allé dans l'aide EXCEL " petite.valeur - grande valeur - mais pas plus de résultat.
salutations à vous deux...
Testé sur un vieux PC ... 2500 lignes -> 2 secondes
Essaie ceci :
'------------------------------------- Sub TriHorizontale(Rg As Range)
Application.EnableEvents = False Application.Calculation = xlCalculationManual For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight Next Application.Calculation = xlCalculationManual Application.EnableEvents = True End Sub '-------------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
Désolé de revenir sur ce problème mais bien que j'enlève cette fonctioN (et ça marche), le tri met un temps très long pour s'effectuer (exemple : 2000 lignes = + de 3 minutes !) Est ce normal, n'existe-t-il pas une méthode plus rapide ?
cordialement ....
Va y de cette façon,
:"DataOption1=xlNormal" = Paramêtre version excel 2003. il n'est probablement pas disponible sur ta version. Il s'agit tout simplement de l'enlever.
'--------------------------------- Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight Next End Sub '---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
re,
Après ta modif, (boucle manquante),
Il subsiste toujours l'erreur 1004 .
- Si je supprime la phrase :"DataOption1=xlNormal" cette erreur disparait et le tri fonctionne, mais , il y a un mais hélas, pour trier une plage comportant 5 colonnes et 2000 lignes, l'opération s'effectue en + de 3 minutes !!!! j'ai chronométré . Cette lenteur est-elle normale ?
merci encore et @ +
Bonjour Migamamba,
Tu as bien raison, j'ai omis la boucle dans la procédure "TriHorizontale"
Utilise plutôt ceci:
'----------------------------- Sub test()
Dim Plg As Range With Worksheets("Feuil1") Set Plg = .Range("A1:A" & _ .Range("A65536").End(xlUp).Row).Resize(, 5) End With
'--------------------------------- Sub TriHorizontale(Rg As Range)
For Each R In Rg.Rows R.Sort Key1:=R.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal Next End Sub '---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
Bonjour Michdenis et merci de m'avoir répondu aussi rapidement.
2°) Ce qui est étrange c'est que si je fais un copier/coller, (sur autant de ligne que je le souhaite), de ma 1ère ligne, mes nombres sont tous triés. En revanche, si je saisis des nombre différents à chaque ligne, seule la première sera triée ? Quid ?
merci e m'aider à percer ce mystère* (*pour moi) - cordialement -
Bonjour Migamamba,
Voici une façon de faire : copie ce qui suit dans un module standard : Dans la procédure "Test", adapte le nom de la feuille et la première colonne où sont situées tes données.
'--------------------------------- Sub test()
Dim Plg As Range With Worksheets("Feuil1") Set Plg = .Range("A1:A" & _ .Range("A65536").End(xlUp).Row).Resize(, 5) End With
je voudrais trier de manière très rapide et horizontalement des nombres sur : 5 colonnes et 3000 lignes (par exemple) ("a1:e3000") . Si je pends comme exemple la macro automatisée en mettant ma plage de cellule, cela ne me tri qu'une seule ligne ! qui peut me donner la solution ? Merci par avance . (Vous l'avez compris je débute). (voici l'exemple ...qui ne fonctionne ...pas !) Range("a1:e3000").Select Selection.Sort Key1:=Range("a1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight