Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans , « Crel »Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans uBgfTfTUDHA.2280@TK2MSFTNGP10.phx.gbl, « Crel »
Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans , « Crel »Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans , « Crel »Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans uBgfTfTUDHA.2280@TK2MSFTNGP10.phx.gbl, « Crel »
Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
Salut Crel
Quel dommage que l'absence de notre Madone (j'ai cité Monique) te prive de
la liste des sites incontournables pour répondre à ce genre de question.
Voici donc ce que tu peux trouver sur l'un d'entre eux en deux coups de
cuillère à pot.
L'adresse du site d'abord
http://www.excelabo.net/index.htm
Les réponses a adapter à ton cas ensuite.
Je voudrais créer des onglets à partir d'une liste de noms contenus sur
une
feuille.
Je voudrais aussi pouvoir détruire tout ou partie de ces onglets.
Private Sub CmdCreerFeuilles_Click()
Dim cell As Range, Nom$, Sht As Worksheet
For Each cell In Selection
Nom = cell.Value
If Nom <> "" Then
On Error Resume Next
Set Sht = Sheets(Nom)
On Error GoTo 0
If Sht Is Nothing Then Sheets.Add.Name = Nom
End If
Next cell
End Sub
Exemple visible sur la page onglet de ce classeur
Frédéric Sigonneau et Flo
Comment trier par ordre alphabétique les onglets de mon fichier ?
Voilà une macro avec un algorithme de tri très rapide, triant par
ordre alphanumérique les *groupes* de feuilles qui commencent par les
mêmes
chaînes de caractères, et opérant à l'intérieur de ces groupes
un tri numérique sur les fins de noms. Si ton classeur contient les
feuilles Zaza26, Zaza15, JPS69, 2000, 19, JPS49287, Zaza4 et Feuil10,
elles seront triées en: 19, 2000, Feuil10, JPS69, JPS49287, Zaza4,
Zaza15 et Zaza26.
'============================================= > 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
Laurent Longre
Le 23/07/03 18:33, dans , « Crel »Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets représentent le
nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit nommer
l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en A1, aille se
mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
-----Message d'origine-----
Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets
représentent le nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit
nommer l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en
A1, aille se mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets
dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
.
-----Message d'origine-----
Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets
représentent le nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit
nommer l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en
A1, aille se mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets
dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
.
-----Message d'origine-----
Bonjour à toutes et tous.
J'ai un classeur classique avec des onglets, ces onglets
représentent le nom
et le prénom d'une personne.
A chaque fois que l'on crée une nouvelle feuille, on doit
nommer l'onglet on
lui donnant le nom et le prénom de la personne.
1. Comment faire pour que le nom et le prénom saisit en
A1, aille se mettre
sur l'onglet, après appui sur un bouton macro ?
2. Comment après appui sur un bouton, mettre les onglets
dans l'ordre
alphabétique ?
Merci beaucoup
Patrick.
.