Tri sur deux zones nommées non contigue

Le
Jed
Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommes non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problme c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
==


"Etre dbutant" a un avantage, contrairement "Etre Con",
c'est qu'on ne l'est qu'au dbut

==
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #1946550
Bonsoir Jed,
D'après ce qu'il me raconte, Excel ne sait pas faire ça.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jed" 13b001c4d144$1a8399b0$
Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problème c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
================================================
"Etre débutant" a un avantage, contrairement à "Etre Con",
c'est qu'on ne l'est qu'au début

=================================================
Jed
Le #1946451
Booohhhh!!! Dommage...ça m'aurait bien arrangé.
Merci de vous êtes penché sur le problème.
Cdlt
Jed
-----Message d'origine-----
Bonsoir Jed,
D'après ce qu'il me raconte, Excel ne sait pas faire ça.
--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jed" le message de news:

13b001c4d144$1a8399b0$
Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problème c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
======================== =========================

"Etre débutant" a un avantage, contrairement à "Etre Con",
c'est qu'on ne l'est qu'au début

======================== =========================

.



Bidouille
Le #1946445
Bonjour,
Il faut le faire en deux fois :
Concrètement à partir de la feuille essaye
Colonnes A à D
Sélectionner la colonne C et faire Insertion - Saut de page
Sélectionner les colonnes A et B faire un tri sur A
Sélectionner les colonnes C et D faire un tri sur C

C'est ce que tu cherches ?
Bidouille


"Jed" 13b001c4d144$1a8399b0$
Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problème c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
================================================
"Etre débutant" a un avantage, contrairement à "Etre Con",
c'est qu'on ne l'est qu'au début

=================================================
PMO
Le #1946423
Bonjour,

J'ai écrit le code suivant en me basant sur votre propre code et
en utilisant les mêmes noms de plages nommées qui y figurent.
Il n'y a plus qu'à le tester.
ATTENTION: testez sur une copie de votre classeur.

'**************************
Option Explicit
Sub Tri2Zones()
Dim A$
Dim R As Range
Dim R1 As Range
Dim R2 As Range
Dim var1
Dim var2
Dim nbLig1&
Dim nbLig2&
Dim nbCol&
Dim T()
Dim h&
Dim i&
Dim j&
On Error GoTo Erreur
A$ = ActiveSheet.Name
Set R = Range("Feuille_Fich")
If R <> 2 Then
Set R1 = Range("Lig_Detail")
R1.Sort Key1:=Range(R1.Address), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom
Else
Set R1 = Range("Lig_Detail")
Set R2 = Range("Lig_Detail2")
var1 = R1
var2 = R2
If R1.Columns.Count <> R2.Columns.Count Then
MsgBox prompt:="Nombre de colonnes " & _
"différentes pour les 2 plages.", _
Title:="Programme stoppé"
Exit Sub
End If
nbLig1& = R1.Rows.Count
nbLig2& = R2.Rows.Count
nbCol& = R1.Columns.Count
ReDim T(1 To nbLig1& + nbLig2&, 1 To nbCol&)
For i& = 1 To nbLig1&
For j& = 1 To nbCol&
T(i&, j&) = var1(i&, j&)
Next j&
Next i&
h& = nbLig1&
For i& = 1 To nbLig2&
For j& = 1 To nbCol&
T(h& + i&, j&) = var2(i&, j&)
Next j&
Next i&
Application.ScreenUpdating = False
Sheets.Add before:=Sheets(1)
Set R = Range(Cells(1, 1), _
Cells(UBound(T, 1), UBound(T, 2)))
R = T
R.Sort Key1:=[a1], _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:úlse, _
Orientation:=xlTopToBottom
var1 = Range(Cells(1, 1), Cells(nbLig1&, nbCol&))
var2 = Range(Cells(1 + nbLig1&, 1), _
Cells(nbLig1& + nbLig2&, nbCol&))
Application.DisplayAlerts = False
Sheets(1).Delete
R1 = var1
R2 = var2
Sheets(A$).Activate
End If
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
'**************************

Est-que ça vous convient ?

Cordialement.

PMO
Patrik Morange



Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problème c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
================================================ >
"Etre débutant" a un avantage, contrairement à "Etre Con",
c'est qu'on ne l'est qu'au début

================================================ >



jed
Le #1914666
Woaw ca a l'air super mais je viens de reunion, je teste
et je vous tiens au courant !
Merci c'est super sympa.
jed
-----Message d'origine-----
Bonjour,

J'ai écrit le code suivant en me basant sur votre propre
code et

en utilisant les mêmes noms de plages nommées qui y
figurent.

Il n'y a plus qu'Ã le tester.
ATTENTION: testez sur une copie de votre classeur.

'**************************
Option Explicit
Sub Tri2Zones()
Dim A$
Dim R As Range
Dim R1 As Range
Dim R2 As Range
Dim var1
Dim var2
Dim nbLig1&
Dim nbLig2&
Dim nbCol&
Dim T()
Dim h&
Dim i&
Dim j&
On Error GoTo Erreur
A$ = ActiveSheet.Name
Set R = Range("Feuille_Fich")
If R <> 2 Then
Set R1 = Range("Lig_Detail")
R1.Sort Key1:=Range(R1.Address), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:lse, _
Orientation:=xlTopToBottom
Else
Set R1 = Range("Lig_Detail")
Set R2 = Range("Lig_Detail2")
var1 = R1
var2 = R2
If R1.Columns.Count <> R2.Columns.Count Then
MsgBox prompt:="Nombre de colonnes " & _
"différentes pour les 2 plages.", _
Title:="Programme stoppé"
Exit Sub
End If
nbLig1& = R1.Rows.Count
nbLig2& = R2.Rows.Count
nbCol& = R1.Columns.Count
ReDim T(1 To nbLig1& + nbLig2&, 1 To nbCol&)
For i& = 1 To nbLig1&
For j& = 1 To nbCol&
T(i&, j&) = var1(i&, j&)
Next j&
Next i&
h& = nbLig1&
For i& = 1 To nbLig2&
For j& = 1 To nbCol&
T(h& + i&, j&) = var2(i&, j&)
Next j&
Next i&
Application.ScreenUpdating = False
Sheets.Add before:=Sheets(1)
Set R = Range(Cells(1, 1), _
Cells(UBound(T, 1), UBound(T, 2)))
R = T
R.Sort Key1:=[a1], _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:lse, _
Orientation:=xlTopToBottom
var1 = Range(Cells(1, 1), Cells(nbLig1&, nbCol&))
var2 = Range(Cells(1 + nbLig1&, 1), _
Cells(nbLig1& + nbLig2&, nbCol&))
Application.DisplayAlerts = False
Sheets(1).Delete
R1 = var1
R2 = var2
Sheets(A$).Activate
End If
Erreur:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
'**************************

Est-que ça vous convient ?

Cordialement.

PMO
Patrik Morange



Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur
2


zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range
("G18:G51"),Order1:=xlAscending,


Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone
lig_detail


et ensuite lig_detail2, le problème c'est que c'est
pas


trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
========================= ========================

"Etre débutant" a un avantage, contrairement à "Etre
Con",


c'est qu'on ne l'est qu'au début

========================= ========================


.





Jed
Le #1914660
Merci d'avoir repondu à mon post,
Mon probleme c'est de fusioner les deux zones pour le tri.
mes tris separement ca marche mais s'il y a une valeur
dans la 2ieme plage qui doit être remonter dans la
premiere plage alors là ca fonctionne plus.
Apres test ta soluce ne fonctionne pas dans mon cas!
Merci en tout cas.
jed

-----Message d'origine-----
Bonjour,
Il faut le faire en deux fois :
Concrètement à partir de la feuille essaye
Colonnes A à D
Sélectionner la colonne C et faire Insertion - Saut de
page

Sélectionner les colonnes A et B faire un tri sur A
Sélectionner les colonnes C et D faire un tri sur C

C'est ce que tu cherches ?
Bidouille


"Jed" le message de news:

13b001c4d144$1a8399b0$
Bonjour a tous,
J'aimerai savoir s'il est possibile de fair un tri sur 2
zones nommées non contigues. Je fais mes tri par ces
codes:

Range("Lig_Detail").Select
Selection.Sort Key1:=Range("G18:G51"),Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom

If Range("Feuille_Fich").Value = 2 Then
Range("Lig_Detail2").Select
Selection.Sort Key1:=Range
("G82:G115"),Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:lse, _
Orientation:=xlTopToBottom
End If

Ca fonctionne bien mais je tri d'abord ma zone lig_detail
et ensuite lig_detail2, le problème c'est que c'est pas
trier sur l'ensemble des deux zones non contigues :-((((

Est ce faisable par vba ?
Merci d'avance de me mettre sur une voie .

Cdlt
Jed
======================== =========================

"Etre débutant" a un avantage, contrairement à "Etre Con",
c'est qu'on ne l'est qu'au début

======================== =========================


.



Publicité
Poster une réponse
Anonyme