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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"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
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
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.
Hélas cela ne fonctionne qu'en partie :
1°) message d'erreur à DtaOption1:... = erreur compil argument introuvable !
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
Application.ScreenUpdating = False
TriHorizontale Plg
End Sub
'---------------------------------
Sub TriHorizontale(Rg As Range)
Rg.Sort Key1:=Rg(1, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End Sub
'---------------------------------
Salutations!
"Migamamba" a écrit dans le message de news:
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