bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour
le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
"Océane" <Océ a écrit dans le message de
news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
sergioENLEVERfrance@orange.fr
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de
news:7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
"Océane" <Océ a écrit dans le message de
news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
Bonjour
http://dj.joss.free.fr/feuil.htm
Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/
"Océane" <Océ a écrit dans le message de news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
Bonjour
http://dj.joss.free.fr/feuil.htm
Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de news:
7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
Bonjour
http://dj.joss.free.fr/feuil.htm
Daniel
--
FAQ MPFE
http://dj.joss.free.fr/faq.htm
VBAXL
http://dj.joss.free.fr/
"Océane" <Océ a écrit dans le message de news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
Tu copie tout ceci dans un module
et tu lances la procédure : TriFeuilles
Cette façon de faire fut proposé par AV et
elle a été écrire par Laurent Longre
'--------------------------------------
Dim Arr(), Idx() As Integer
Dim Elt1, Elt2, IdxTemp As Integer
Dim I As Integer
Sub TriFeuilles()
Dim J As Integer, NF As Integer
Dim Nom() As String
Dim Calc As Long
NF = Sheets.Count
ReDim Nom(1 To NF)
ReDim Arr(1 To NF, 1 To 2)
For I = 1 To NF
Nom(I) = Sheets(I).Name
For J = Len(Nom(I)) To 1 Step -1
If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
Next J
If J = Len(Nom(I)) Then
Arr(I, 1) = Nom(I)
Else
Arr(I, 1) = Left$(Nom(I), J)
Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
End If
Next I
ReDim Idx(1 To NF)
For I = 1 To UBound(Idx)
Idx(I) = I
Next I
Tri 1, NF
Erase Arr
Calc = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For I = 1 To NF
Sheets(Nom(Idx(I))).Move Sheets(I)
Next I
Application.Calculation = Calc
End Sub
Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
Dim B2 As Integer
Dim H2 As Integer
B2 = B1
H2 = H1
Elt1 = Arr(Idx((B1 + H1) 2), 1)
Elt2 = Arr(Idx((B1 + H1) 2), 2)
Do While B2 < H2
Do While B2 < H1
If Arr(Idx(B2), 1) > Elt1 Then Exit Do
If Arr(Idx(B2), 1) = Elt1 Then _
If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
B2 = B2 + 1
Loop
Do While H2 > B1
If Arr(Idx(H2), 1) < Elt1 Then Exit Do
If Arr(Idx(H2), 1) = Elt1 Then _
If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
H2 = H2 - 1
Loop
If B2 < H2 Then
IdxTemp = Idx(B2)
Idx(B2) = Idx(H2)
Idx(H2) = IdxTemp
End If
If B2 <= H2 Then
B2 = B2 + 1
H2 = H2 - 1
End If
Loop
If H2 > B1 Then Tri B1, H2
If B2 < H1 Then Tri B2, H1
End Sub
'--------------------------------------
"Océane" <Océ a écrit dans le message de groupe de
discussion :
bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
novice dans excel. cordialement Océane.
J'ai oublié l'essentiel.
tu reviens à l'interface de calcul,
utilise le raccourci clavier Alt + F8
Le nom de la macro apparaîtra dans la fenêtre.
tu la sélectionnes et appuies sur le bouton exécuter.
"Océane" a écrit dans le message de groupe de discussion
:
Bonjour, merci beaucoup de me repondre; mais jn'y comprends rien! c'est quoi
un "module"et ou le trouver? je suis vraiment une novice et j'ose pas trop
trifouiller encore. merci cordialement Océane
"michdenis" a écrit :
> Tu copie tout ceci dans un module
> et tu lances la procédure : TriFeuilles
>
> Cette façon de faire fut proposé par AV et
> elle a été écrire par Laurent Longre
>
> '--------------------------------------
> Dim Arr(), Idx() As Integer
> Dim Elt1, Elt2, IdxTemp As Integer
> Dim I As Integer
>
> Sub TriFeuilles()
>
> Dim J As Integer, NF As Integer
> Dim Nom() As String
> Dim Calc As Long
>
> NF = Sheets.Count
> ReDim Nom(1 To NF)
> ReDim Arr(1 To NF, 1 To 2)
> For I = 1 To NF
> Nom(I) = Sheets(I).Name
> For J = Len(Nom(I)) To 1 Step -1
> If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
> Next J
> If J = Len(Nom(I)) Then
> Arr(I, 1) = Nom(I)
> Else
> Arr(I, 1) = Left$(Nom(I), J)
> Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
> End If
> Next I
> ReDim Idx(1 To NF)
> For I = 1 To UBound(Idx)
> Idx(I) = I
> Next I
> Tri 1, NF
> Erase Arr
> Calc = Application.Calculation
> Application.Calculation = xlCalculationManual
> Application.ScreenUpdating = False
> For I = 1 To NF
> Sheets(Nom(Idx(I))).Move Sheets(I)
> Next I
> Application.Calculation = Calc
>
> End Sub
>
> Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
>
> Dim B2 As Integer
> Dim H2 As Integer
>
> B2 = B1
> H2 = H1
> Elt1 = Arr(Idx((B1 + H1) 2), 1)
> Elt2 = Arr(Idx((B1 + H1) 2), 2)
> Do While B2 < H2
> Do While B2 < H1
> If Arr(Idx(B2), 1) > Elt1 Then Exit Do
> If Arr(Idx(B2), 1) = Elt1 Then _
> If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
> B2 = B2 + 1
> Loop
> Do While H2 > B1
> If Arr(Idx(H2), 1) < Elt1 Then Exit Do
> If Arr(Idx(H2), 1) = Elt1 Then _
> If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
> H2 = H2 - 1
> Loop
> If B2 < H2 Then
> IdxTemp = Idx(B2)
> Idx(B2) = Idx(H2)
> Idx(H2) = IdxTemp
> End If
> If B2 <= H2 Then
> B2 = B2 + 1
> H2 = H2 - 1
> End If
> Loop
> If H2 > B1 Then Tri B1, H2
> If B2 < H1 Then Tri B2, H1
>
> End Sub
> '--------------------------------------
>
>
>
>
>
> "Océane" <Océ a écrit dans le message de groupe de
> discussion :
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
>
J'ai oublié l'essentiel.
tu reviens à l'interface de calcul,
utilise le raccourci clavier Alt + F8
Le nom de la macro apparaîtra dans la fenêtre.
tu la sélectionnes et appuies sur le bouton exécuter.
"Océane" <Ocane@discussions.microsoft.com> a écrit dans le message de groupe de discussion
: D89C4319-0322-44A2-8A38-0AA765AE5B7C@microsoft.com...
Bonjour, merci beaucoup de me repondre; mais jn'y comprends rien! c'est quoi
un "module"et ou le trouver? je suis vraiment une novice et j'ose pas trop
trifouiller encore. merci cordialement Océane
"michdenis" a écrit :
> Tu copie tout ceci dans un module
> et tu lances la procédure : TriFeuilles
>
> Cette façon de faire fut proposé par AV et
> elle a été écrire par Laurent Longre
>
> '--------------------------------------
> Dim Arr(), Idx() As Integer
> Dim Elt1, Elt2, IdxTemp As Integer
> Dim I As Integer
>
> Sub TriFeuilles()
>
> Dim J As Integer, NF As Integer
> Dim Nom() As String
> Dim Calc As Long
>
> NF = Sheets.Count
> ReDim Nom(1 To NF)
> ReDim Arr(1 To NF, 1 To 2)
> For I = 1 To NF
> Nom(I) = Sheets(I).Name
> For J = Len(Nom(I)) To 1 Step -1
> If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
> Next J
> If J = Len(Nom(I)) Then
> Arr(I, 1) = Nom(I)
> Else
> Arr(I, 1) = Left$(Nom(I), J)
> Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
> End If
> Next I
> ReDim Idx(1 To NF)
> For I = 1 To UBound(Idx)
> Idx(I) = I
> Next I
> Tri 1, NF
> Erase Arr
> Calc = Application.Calculation
> Application.Calculation = xlCalculationManual
> Application.ScreenUpdating = False
> For I = 1 To NF
> Sheets(Nom(Idx(I))).Move Sheets(I)
> Next I
> Application.Calculation = Calc
>
> End Sub
>
> Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
>
> Dim B2 As Integer
> Dim H2 As Integer
>
> B2 = B1
> H2 = H1
> Elt1 = Arr(Idx((B1 + H1) 2), 1)
> Elt2 = Arr(Idx((B1 + H1) 2), 2)
> Do While B2 < H2
> Do While B2 < H1
> If Arr(Idx(B2), 1) > Elt1 Then Exit Do
> If Arr(Idx(B2), 1) = Elt1 Then _
> If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
> B2 = B2 + 1
> Loop
> Do While H2 > B1
> If Arr(Idx(H2), 1) < Elt1 Then Exit Do
> If Arr(Idx(H2), 1) = Elt1 Then _
> If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
> H2 = H2 - 1
> Loop
> If B2 < H2 Then
> IdxTemp = Idx(B2)
> Idx(B2) = Idx(H2)
> Idx(H2) = IdxTemp
> End If
> If B2 <= H2 Then
> B2 = B2 + 1
> H2 = H2 - 1
> End If
> Loop
> If H2 > B1 Then Tri B1, H2
> If B2 < H1 Then Tri B2, H1
>
> End Sub
> '--------------------------------------
>
>
>
>
>
> "Océane" <Océane@discussions.microsoft.com> a écrit dans le message de groupe de
> discussion : 7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
>
J'ai oublié l'essentiel.
tu reviens à l'interface de calcul,
utilise le raccourci clavier Alt + F8
Le nom de la macro apparaîtra dans la fenêtre.
tu la sélectionnes et appuies sur le bouton exécuter.
"Océane" a écrit dans le message de groupe de discussion
:
Bonjour, merci beaucoup de me repondre; mais jn'y comprends rien! c'est quoi
un "module"et ou le trouver? je suis vraiment une novice et j'ose pas trop
trifouiller encore. merci cordialement Océane
"michdenis" a écrit :
> Tu copie tout ceci dans un module
> et tu lances la procédure : TriFeuilles
>
> Cette façon de faire fut proposé par AV et
> elle a été écrire par Laurent Longre
>
> '--------------------------------------
> Dim Arr(), Idx() As Integer
> Dim Elt1, Elt2, IdxTemp As Integer
> Dim I As Integer
>
> Sub TriFeuilles()
>
> Dim J As Integer, NF As Integer
> Dim Nom() As String
> Dim Calc As Long
>
> NF = Sheets.Count
> ReDim Nom(1 To NF)
> ReDim Arr(1 To NF, 1 To 2)
> For I = 1 To NF
> Nom(I) = Sheets(I).Name
> For J = Len(Nom(I)) To 1 Step -1
> If Not IsNumeric(Mid$(Nom(I), J, 1)) Then Exit For
> Next J
> If J = Len(Nom(I)) Then
> Arr(I, 1) = Nom(I)
> Else
> Arr(I, 1) = Left$(Nom(I), J)
> Arr(I, 2) = CLng(Mid$(Nom(I), J + 1))
> End If
> Next I
> ReDim Idx(1 To NF)
> For I = 1 To UBound(Idx)
> Idx(I) = I
> Next I
> Tri 1, NF
> Erase Arr
> Calc = Application.Calculation
> Application.Calculation = xlCalculationManual
> Application.ScreenUpdating = False
> For I = 1 To NF
> Sheets(Nom(Idx(I))).Move Sheets(I)
> Next I
> Application.Calculation = Calc
>
> End Sub
>
> Private Sub Tri(ByVal B1 As Integer, ByVal H1 As Integer)
>
> Dim B2 As Integer
> Dim H2 As Integer
>
> B2 = B1
> H2 = H1
> Elt1 = Arr(Idx((B1 + H1) 2), 1)
> Elt2 = Arr(Idx((B1 + H1) 2), 2)
> Do While B2 < H2
> Do While B2 < H1
> If Arr(Idx(B2), 1) > Elt1 Then Exit Do
> If Arr(Idx(B2), 1) = Elt1 Then _
> If Arr(Idx(B2), 2) >= Elt2 Then Exit Do
> B2 = B2 + 1
> Loop
> Do While H2 > B1
> If Arr(Idx(H2), 1) < Elt1 Then Exit Do
> If Arr(Idx(H2), 1) = Elt1 Then _
> If Arr(Idx(H2), 2) <= Elt2 Then Exit Do
> H2 = H2 - 1
> Loop
> If B2 < H2 Then
> IdxTemp = Idx(B2)
> Idx(B2) = Idx(H2)
> Idx(H2) = IdxTemp
> End If
> If B2 <= H2 Then
> B2 = B2 + 1
> H2 = H2 - 1
> End If
> Loop
> If H2 > B1 Then Tri B1, H2
> If B2 < H1 Then Tri B2, H1
>
> End Sub
> '--------------------------------------
>
>
>
>
>
> "Océane" <Océ a écrit dans le message de groupe de
> discussion :
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
>
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
"Océane" <Océ a écrit dans le message de
news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
sergioENLEVERfrance@orange.fr
"Océane" <Océane@discussions.microsoft.com> a écrit dans le message de
news:7352FAC3-8501-42ED-B2F6-743DD1EB2A59@microsoft.com...
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.
tu veux parler de l'ordre"alphabétique"?
tu veux trier les onglets? les lignes?
--
Serge CENCI
MVP MS Windows
https://mvp.support.microsoft.com/profile/Serge.Cenci
http://www.communautes-numeriques.net/
"Océane" <Océ a écrit dans le message de
news:
> bjr,je m'appelle Oceane et j'envoie un sos; j'ai créé un classeur excel
> avec
> mes cd de musique, j'ai rentré tous les noms dans l'onglet des feuilles
> excel
> et je voudrai les mettre par ordre croissant? existe t il un systeme pour
> le
> faire? j'emploie excel 2007. Merci beaucoup pour votre aide. suis tres
> novice dans excel. cordialement Océane.