tri d'onglets alpha

  • Initiateur de la discussion Evelyne
  • Date de début
E

Evelyne

Guest
Bonsoir le forum

j'ai une macro qui tri les onglets alpha.

Est -il possible de trier les onglets de feuils par alpha
en ne tenant pas compte de certaines (la premiere et la derniere).
Fichier exemple joint.
merci pour les sujetions que vous pourriez m'apporter
bonne soirée a tous

Evelyne
 

Pièces jointes

  • TriDesFeuils.zip
    12.4 KB · Affichages: 31
@

@Christophe@

Guest
Bonsoir Evelyne

Remplace le code de ton module par celui si:

Sub Tri()
Dim X As Variant
Dim I As Variant

Application.ScreenUpdating = False
For Each X In ActiveWorkbook.Sheets
For I = 2 To ActiveWorkbook.Sheets.Count
If Sheets(I - 1).Name > Sheets(I).Name Then
Sheets(I - 1).Move After:=Sheets(I)
End If
Next
Next
Sheets("FIN").Move After:=Sheets(Sheets.Count)
Sheets("Sommaire").Move Before:=Sheets(1)
Application.ScreenUpdating = True
End Sub


Bonne soirée

@Christophe@
 
@

@+Thierry

Guest
Bonsoir Evelyne

Tel que tu as rédigé ta macro pour faire le Tri on ne peut utiliser une condition :

If Not WS.Name = "Sommaire" Or WS.Name = "Fin" Then...

Donc en respectant ton code, je ne me complique pas la vie et je laisse faire le tri puis je remets en place les feuilles ...

Sub SheetsTri()

Dim WS As Worksheet
Dim i As Byte
Application.ScreenUpdating = False
For Each WS In Sheets

For i = 2 To Sheets.Count
If Sheets(i - 1).Name > Sheets(i).Name Then
Sheets(i - 1).Move After:=Sheets(i)
End If
Next i
Next WS


Sheets("Sommaire").Move Before:=Sheets(1)
Sheets("Fin").Move After:=Sheets(Sheets.Count)
Application.ScreenUpdating = False
End Sub


J'ai aussi un peu standardisé les Variables (tout n'est pas Variant !! lol) et puis leur noms (WS est standard pour un Object WorkSheet) Je remets aussi le ScreenUpdating en True en fin de procédure.

Bonne Soirée
@+Thierry
 
@

@Christophe@

Guest
Bonsoir

Ben qui voila, le grand chef VBA en personne, et nous nous croisons, en plus nous avons eu la même idée, c'est génial, que commence à réfléchire comme Thierry, lol

J'ai aussi ajouté le screenupdating, par contre j'ai pas vérifie les variable, mets Thierry nous finalyse tous cela en beauté

Bonne soirée

@Christophe@
 
@

@+Thierry

Guest
Héhéhé @Xtof@

et puis aussi des petits plus...

Next i
Next WS

Ici c'est pas grave, mais quand tu as des if qui lancent un premier For Each qui lance un autre If et qui lance une autre boucle For X = 1 to Toto... Et pourquoi pas un autre If... (héhéhé) qui lance un For Z !!!!

For Each WS In Sheets
If Not WS.Name = "Toto" Then
For X = 1 To Toto
If Left(WS.Name, 4) = "Zaza" Then
If Range("A" & X) = "Tata" Then
For Z = 1 To 3
Cells(5, Z) = "NimpaurteKoi"
Next Z
End If
End If
Next X
End If
Next WS

Et encore ici dans le Forum il n'y a pas le retrait, "Indent"... (çà aussi c'est important...) Je crois que çà passe sur les mails...

Bonne soirée
@+Thierry
 
@

@Christophe@

Guest
Re

Ben la Thierry, tu fais compliqué, rire

IF possible encore quelque IF
THEN
END IF Oblige cause IF is present, Lot Of Laugh

Avec les FOR each IF in Post
END IF oblige
next IF

rire

Bonne soirée à vous


@Christophe@
 
E

Evelyne

Guest
tout d'abord merci a vous deux , ou au plus rapide lol !!


j'ai realiser un exemple pour etre plus clair

d'apres vos explications et en considérent mon programme
voici ce que je dois rajouiter a ma macro :

Sheets("Sommaire").Move Before:=Sheets("AUBERT")
Sheets("Fin").Move After:=Sheets("WILLEMIN")
et puis le scrennupdating etc..

AUBERT étant la premiere fiche pour le moment et WILLEMIN etant la derniere pour le moment ;pas de problème
mais si je rajoute deux fiches "ABDEL" et "XIRES" par exemple
j'aurais :
ABDEL ; Sommaire ; AUBERT ;.........;;WILLEMIN ; FIN. et XIRES.
et c'est ça que je cherche a éviter !!

merci de vous penchez sur mon probleme
je vous remerci d'avance
Evelyne
 
@

@+Thierry

Guest
NOn non Evelyne

ne mets pas de nom de feuille !!!

Conserve le code tel que nous te l'avons présenté Christophe et moi !!!


Sheets("Sommaire").Move Before:=Sheets(1)
Sheets("Fin").Move After:=Sheets(Sheets.Count)


Sheets(1) sera toujours la Première Feuille

et Sheets.Count sera toujours la dernière !!!

Bonne Soirée
@+Thierry
 
@

@+Thierry

Guest
Hi hi hi


bouee_O.jpg

ForumXLD.gif
ForumXLD.gif
ForumXLD.gif
ForumXLD.gif



smiley_471.gif

@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz