Sheets(m).Select
Cells(4, 1).Value =3D Sheets(m).Name
For p =3D m To Sheets.Count
If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then
Sheets(p).Move Sheets(m)
End If
Next p
Next m
au lieu de for m je voudrais qu'il classe toutes les feuilles sauf 3
dont les nom sont donn=E9s.
l'exception se fait je crois avec les elements each, <> mais je n'ai as
reussi
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-François Aubert
Salut,
'************************************************************************ Sub triDeCertainesFeuilles() '* les feuilles triées seront placées en ordre croissant '* dans les emplacements non occupés pas les feuilles non triées
'* liste des feuilles qui ne doivent pas être triées '* à modifier selon besoin nom1 = "Feuil1" nom2 = "Feuil4" nom3 = "Feuil3" 'nom4 'nom5 'etc..
'* mémorise l'emplacement des feuilles '* qui ne doivent pas être triées ReDim tbl(Sheets.Count) For ish = 1 To Sheets.Count Select Case Sheets(ish).Name Case nom1 tbl(ish) = nom1 Case nom2 tbl(ish) = nom2 Case nom3 tbl(ish) = nom3 Case nom4 tbl(ish) = nom4 Case nom5 tbl(ish) = nom5 'etc... End Select Next
'* trie toutes les feuilles For m = 1 To Sheets.Count 'Sheets(m).Select 'Cells(4, 1).Value = Sheets(m).Name For p = m To Sheets.Count If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then Sheets(p).Move Sheets(m) End If Next p Next m
'* déplace en dernières positions les feuilles '* qui ne doivent pas être triées For itbl = 1 To UBound(tbl) If Len(tbl(itbl)) > 1 Then Sheets(tbl(itbl)).Move after:=Sheets(Sheets.Count) Next
'* replace dans leur position d'origine les feuilles '* qui ne doivent pas être triées For itbl = 1 To UBound(tbl) If Len(tbl(itbl)) > 0 Then If itbl = 1 Then Sheets(tbl(itbl)).Move before:=Sheets(itbl) ElseIf itbl = UBound(tbl) Then Sheets(tbl(itbl)).Move after:=Sheets(itbl) Else Sheets(tbl(itbl)).Move after:=Sheets(itbl - 1) End If End If Next End Sub ' ajf
Jean-François Aubert {Vaudois de la Côte Lémanique}
"S3com" a écrit dans le message de news:
bonjour voici mon code..
For m = 4 To Sheets.Count
Sheets(m).Select Cells(4, 1).Value = Sheets(m).Name For p = m To Sheets.Count If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then Sheets(p).Move Sheets(m) End If Next p Next m
au lieu de for m je voudrais qu'il classe toutes les feuilles sauf 3 dont les nom sont donnés. l'exception se fait je crois avec les elements each, <> mais je n'ai as reussi
Merci de votre aide
Salut,
'************************************************************************
Sub triDeCertainesFeuilles()
'* les feuilles triées seront placées en ordre croissant
'* dans les emplacements non occupés pas les feuilles non triées
'* liste des feuilles qui ne doivent pas être triées
'* à modifier selon besoin
nom1 = "Feuil1"
nom2 = "Feuil4"
nom3 = "Feuil3"
'nom4 'nom5 'etc..
'* mémorise l'emplacement des feuilles
'* qui ne doivent pas être triées
ReDim tbl(Sheets.Count)
For ish = 1 To Sheets.Count
Select Case Sheets(ish).Name
Case nom1
tbl(ish) = nom1
Case nom2
tbl(ish) = nom2
Case nom3
tbl(ish) = nom3
Case nom4
tbl(ish) = nom4
Case nom5
tbl(ish) = nom5
'etc...
End Select
Next
'* trie toutes les feuilles
For m = 1 To Sheets.Count
'Sheets(m).Select
'Cells(4, 1).Value = Sheets(m).Name
For p = m To Sheets.Count
If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then
Sheets(p).Move Sheets(m)
End If
Next p
Next m
'* déplace en dernières positions les feuilles
'* qui ne doivent pas être triées
For itbl = 1 To UBound(tbl)
If Len(tbl(itbl)) > 1 Then Sheets(tbl(itbl)).Move
after:=Sheets(Sheets.Count)
Next
'* replace dans leur position d'origine les feuilles
'* qui ne doivent pas être triées
For itbl = 1 To UBound(tbl)
If Len(tbl(itbl)) > 0 Then
If itbl = 1 Then
Sheets(tbl(itbl)).Move before:=Sheets(itbl)
ElseIf itbl = UBound(tbl) Then
Sheets(tbl(itbl)).Move after:=Sheets(itbl)
Else
Sheets(tbl(itbl)).Move after:=Sheets(itbl - 1)
End If
End If
Next
End Sub ' ajf
Jean-François Aubert
{Vaudois de la Côte Lémanique}
"S3com" <cathy.atienza@scaso.fr> a écrit dans le message de news:
1144672538.348959.47560@v46g2000cwv.googlegroups.com...
bonjour voici mon code..
For m = 4 To Sheets.Count
Sheets(m).Select
Cells(4, 1).Value = Sheets(m).Name
For p = m To Sheets.Count
If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then
Sheets(p).Move Sheets(m)
End If
Next p
Next m
au lieu de for m je voudrais qu'il classe toutes les feuilles sauf 3
dont les nom sont donnés.
l'exception se fait je crois avec les elements each, <> mais je n'ai as
reussi
'************************************************************************ Sub triDeCertainesFeuilles() '* les feuilles triées seront placées en ordre croissant '* dans les emplacements non occupés pas les feuilles non triées
'* liste des feuilles qui ne doivent pas être triées '* à modifier selon besoin nom1 = "Feuil1" nom2 = "Feuil4" nom3 = "Feuil3" 'nom4 'nom5 'etc..
'* mémorise l'emplacement des feuilles '* qui ne doivent pas être triées ReDim tbl(Sheets.Count) For ish = 1 To Sheets.Count Select Case Sheets(ish).Name Case nom1 tbl(ish) = nom1 Case nom2 tbl(ish) = nom2 Case nom3 tbl(ish) = nom3 Case nom4 tbl(ish) = nom4 Case nom5 tbl(ish) = nom5 'etc... End Select Next
'* trie toutes les feuilles For m = 1 To Sheets.Count 'Sheets(m).Select 'Cells(4, 1).Value = Sheets(m).Name For p = m To Sheets.Count If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then Sheets(p).Move Sheets(m) End If Next p Next m
'* déplace en dernières positions les feuilles '* qui ne doivent pas être triées For itbl = 1 To UBound(tbl) If Len(tbl(itbl)) > 1 Then Sheets(tbl(itbl)).Move after:=Sheets(Sheets.Count) Next
'* replace dans leur position d'origine les feuilles '* qui ne doivent pas être triées For itbl = 1 To UBound(tbl) If Len(tbl(itbl)) > 0 Then If itbl = 1 Then Sheets(tbl(itbl)).Move before:=Sheets(itbl) ElseIf itbl = UBound(tbl) Then Sheets(tbl(itbl)).Move after:=Sheets(itbl) Else Sheets(tbl(itbl)).Move after:=Sheets(itbl - 1) End If End If Next End Sub ' ajf
Jean-François Aubert {Vaudois de la Côte Lémanique}
"S3com" a écrit dans le message de news:
bonjour voici mon code..
For m = 4 To Sheets.Count
Sheets(m).Select Cells(4, 1).Value = Sheets(m).Name For p = m To Sheets.Count If UCase(Sheets(p).Name) < UCase(Sheets(m).Name) Then Sheets(p).Move Sheets(m) End If Next p Next m
au lieu de for m je voudrais qu'il classe toutes les feuilles sauf 3 dont les nom sont donnés. l'exception se fait je crois avec les elements each, <> mais je n'ai as reussi
Merci de votre aide
S3com
Merci de ton aide.
Je voudrais savoir si il est possible d'utiliser un nom de feuille relatif tel que name like "recap *".
Merci par avance emeric
Merci de ton aide.
Je voudrais savoir si il est possible d'utiliser un nom de feuille
relatif tel que
name like "recap *".
Si je veux faire cette manip pour plusieurs nom de feuilles tel que recap*, convocation*, acceuil* puis je faire ainsi :
For Each sh In Worksheets If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"..., vbTextCompare) = 0 Then 'ton code pour les déplacements
Merci par avance Emeric
michdenis
Ce que tu proposes est impossible.
Il est possible de répéter plus d'une fois ce type de condition dans une boucle.
Salutations!
"S3com" a écrit dans le message de news: Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que recap*, convocation*, acceuil* puis je faire ainsi :
For Each sh In Worksheets If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"..., vbTextCompare) = 0 Then 'ton code pour les déplacements
Merci par avance Emeric
Ce que tu proposes est impossible.
Il est possible de répéter plus d'une fois ce type de condition
dans une boucle.
Salutations!
"S3com" <cathy.atienza@scaso.fr> a écrit dans le message de news: 1144833889.985481.268060@t31g2000cwb.googlegroups.com...
Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que
recap*, convocation*, acceuil*
puis je faire ainsi :
For Each sh In Worksheets
If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"...,
vbTextCompare) = 0 Then
'ton code pour les déplacements
Il est possible de répéter plus d'une fois ce type de condition dans une boucle.
Salutations!
"S3com" a écrit dans le message de news: Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que recap*, convocation*, acceuil* puis je faire ainsi :
For Each sh In Worksheets If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"..., vbTextCompare) = 0 Then 'ton code pour les déplacements
Merci par avance Emeric
Patrick BASTARD
Bonjour, *S3com*
Une piste : For Each Sh In ThisWorkbook.Sheets If Sh.Name <> "recap" And Sh.Name <> "convocation" _ And Sh.Name <> "accueil" _ Then toncode End If Next Sh
non testé.
-- Bien amicordialement, P. Bastard
Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que recap*, convocation*, acceuil* puis je faire ainsi :
For Each sh In Worksheets If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"..., vbTextCompare) = 0 Then 'ton code pour les déplacements
Merci par avance Emeric
Bonjour, *S3com*
Une piste :
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "recap" And Sh.Name <> "convocation" _
And Sh.Name <> "accueil" _
Then
toncode
End If
Next Sh
non testé.
--
Bien amicordialement,
P. Bastard
Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que
recap*, convocation*, acceuil*
puis je faire ainsi :
For Each sh In Worksheets
If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"...,
vbTextCompare) = 0 Then
'ton code pour les déplacements
Une piste : For Each Sh In ThisWorkbook.Sheets If Sh.Name <> "recap" And Sh.Name <> "convocation" _ And Sh.Name <> "accueil" _ Then toncode End If Next Sh
non testé.
-- Bien amicordialement, P. Bastard
Bonjour et merci pour l'info!
Si je veux faire cette manip pour plusieurs nom de feuilles tel que recap*, convocation*, acceuil* puis je faire ainsi :
For Each sh In Worksheets If InStr(1, sh.Name, "recap"&"convocation"&"acceuil"..., vbTextCompare) = 0 Then 'ton code pour les déplacements