OVH Cloud OVH Cloud

Trier Feuilles commencant par "S"

17 réponses
Avatar
vpco
Bonsoir la communauté,

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.

Merci pour votre aide.

Cordialement.

Marc

7 réponses

1 2
Avatar
othello
Hello
Dans la deuxieme boucle du code donne par Francois
il faut
For i = 1 To cpt - 2

et non -1

Cordialement
Othello
Avatar
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

Avatar
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

Avatar
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

Avatar
Vpco
Salut Francois,

Tablo ou pas Tablo....lol

Ca fonctionne impec.

Merci à toi.

Cordialement.

Marc
Avatar
Vpco
Bonjour à tous,

Alors voilà, Francois.L m'a proposé une solution qui me convient.

En dehors de lui, je voulais remercier tous les contributeurs qui sont
intervenus sur ce fil.

Cordialement.

Marc
Avatar
Francois L
Salut Francois,

Tablo ou pas Tablo....lol

Ca fonctionne impec.



Bonsoir Vpco,

OK, merci du retour.

--
François L

1 2