Soit un classeur avec un certain nombre de feuille dont certaine commence
par S1, S2, S3 etc... juqu'à S52. Sachant que lors de la première utilisation
du dit classeur ces feuilles ne sont pas présente dans le classeur. Pour
chaque semaine je crée donc une feuille commencant pr le numéro de la semaine
sous la forme décrite ci-dessus.
Comment puis-je à la fermeture de mon classeur trier ces feuilles commençant
par S et rien que celle là ?
J'ai bien trouvé quelques codes du côté de chez maître Fred mais je n'arrive
pas à les adpater à ma situation.
Hello Dans la deuxieme boucle du code donne par Francois il faut For i = 1 To cpt - 2
et non -1
Cordialement Othello
Francois L
Hello Dans la deuxieme boucle du code donne par Francois il faut For i = 1 To cpt - 2
et non -1
Bonsoir,
Désolé mais je maintiens qu'il faut
For i = 1 To cpt - 1
Le problème rencontré peut avoir plusieurs causes : la série ne commence pas par S1, les noms de feuilles ne soient pas Sx mais par exemple S_x, il y a d'autres feuilles que celles à trier dont le nom commence par S
-- François L
Hello
Dans la deuxieme boucle du code donne par Francois
il faut
For i = 1 To cpt - 2
et non -1
Bonsoir,
Désolé mais je maintiens qu'il faut
For i = 1 To cpt - 1
Le problème rencontré peut avoir plusieurs causes :
la série ne commence pas par S1,
les noms de feuilles ne soient pas Sx mais par exemple S_x,
il y a d'autres feuilles que celles à trier dont le nom commence par S
Hello Dans la deuxieme boucle du code donne par Francois il faut For i = 1 To cpt - 2
et non -1
Bonsoir,
Désolé mais je maintiens qu'il faut
For i = 1 To cpt - 1
Le problème rencontré peut avoir plusieurs causes : la série ne commence pas par S1, les noms de feuilles ne soient pas Sx mais par exemple S_x, il y a d'autres feuilles que celles à trier dont le nom commence par S
-- François L
DarthMac
Francois L a formulé ce lundi :
A priori, le plantage vient de ce que tu n'as pas de Feuille nommée S1. Je cherche une solution pour répondre à ce cas là.
salut FL,
dans ce cas il faut que l'on récupère l'info du S[nombre] le plus bas de la série. Cela dit, au passage, cela ne risque-t-il pas de planter dès qu'une feuille S[], quelqu'elle soit, manque ?
mac
Francois L a formulé ce lundi :
A priori, le plantage vient de ce que tu n'as pas de Feuille nommée S1. Je
cherche une solution pour répondre à ce cas là.
salut FL,
dans ce cas il faut que l'on récupère l'info du S[nombre] le plus bas
de la série. Cela dit, au passage, cela ne risque-t-il pas de planter
dès qu'une feuille S[], quelqu'elle soit, manque ?
A priori, le plantage vient de ce que tu n'as pas de Feuille nommée S1. Je cherche une solution pour répondre à ce cas là.
salut FL,
dans ce cas il faut que l'on récupère l'info du S[nombre] le plus bas de la série. Cela dit, au passage, cela ne risque-t-il pas de planter dès qu'une feuille S[], quelqu'elle soit, manque ?
mac
Francois L
Salut Francois,
Ca y est je viens de rentrer.
Je viens de tester ton code et ca plante sur la 7ème ligne du code dans la deuxième boucle qui si j'ai bien compris est supposer trier les feuilles.
J'ai un jolie erreur d'exécution '9' avec le message " l'indice n'appartient pas à la sélection".
Bonsoir,
Une version qui devrait fonctionner même si la série ne commence pas avec S1 et même si la numérotation n'est pas continue.
SVP les gourous, pas taper, mes "tablo" sont pas terribles mais ça a l'air de fonctionner.
Dim tablo() As Integer Sub tri() ReDim tablo(0) For Each s In ActiveWorkbook.Sheets If Left(s.Name, 1) = "S" Then ReDim Preserve tablo(UBound(tablo) + 1) tablo(UBound(tablo)) = Val(Right(s.Name, Len(s.Name) - 1)) End If Next For I = 1 To UBound(tablo) - 1 a = WorksheetFunction.Large(tablo, I) b = WorksheetFunction.Large(tablo, I + 1) Sheets("S" & b).Move before:=Sheets("S" & a) Next End Sub
-- François L
Salut Francois,
Ca y est je viens de rentrer.
Je viens de tester ton code et ca plante sur la 7ème ligne du code dans la
deuxième boucle qui si j'ai bien compris est supposer trier les feuilles.
J'ai un jolie erreur d'exécution '9' avec le message " l'indice n'appartient
pas à la sélection".
Bonsoir,
Une version qui devrait fonctionner même si la série ne commence pas
avec S1 et même si la numérotation n'est pas continue.
SVP les gourous, pas taper, mes "tablo" sont pas terribles mais ça a
l'air de fonctionner.
Dim tablo() As Integer
Sub tri()
ReDim tablo(0)
For Each s In ActiveWorkbook.Sheets
If Left(s.Name, 1) = "S" Then
ReDim Preserve tablo(UBound(tablo) + 1)
tablo(UBound(tablo)) = Val(Right(s.Name, Len(s.Name) - 1))
End If
Next
For I = 1 To UBound(tablo) - 1
a = WorksheetFunction.Large(tablo, I)
b = WorksheetFunction.Large(tablo, I + 1)
Sheets("S" & b).Move before:=Sheets("S" & a)
Next
End Sub
Je viens de tester ton code et ca plante sur la 7ème ligne du code dans la deuxième boucle qui si j'ai bien compris est supposer trier les feuilles.
J'ai un jolie erreur d'exécution '9' avec le message " l'indice n'appartient pas à la sélection".
Bonsoir,
Une version qui devrait fonctionner même si la série ne commence pas avec S1 et même si la numérotation n'est pas continue.
SVP les gourous, pas taper, mes "tablo" sont pas terribles mais ça a l'air de fonctionner.
Dim tablo() As Integer Sub tri() ReDim tablo(0) For Each s In ActiveWorkbook.Sheets If Left(s.Name, 1) = "S" Then ReDim Preserve tablo(UBound(tablo) + 1) tablo(UBound(tablo)) = Val(Right(s.Name, Len(s.Name) - 1)) End If Next For I = 1 To UBound(tablo) - 1 a = WorksheetFunction.Large(tablo, I) b = WorksheetFunction.Large(tablo, I + 1) Sheets("S" & b).Move before:=Sheets("S" & a) Next End Sub