XL 2016 Nom des feuilles

SETILA

XLDnaute Junior
Hello à tous,

Pouvez-vous me dire comment faire pour activé les feuilles qui sont composés du nom "Archives" ?
J'ai essayé ("*Archive*") mais sans succès !

Et pour finir pourquoi j'obtiens une erreur lorsque j'ajoute le code en bleu ???
Merci d'avance.



Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.Worksheets("Archives TACHES").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Archives TACHES").Sort.SortFields.Add Key:=Range("B4:B1000") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Archives TACHES").Sort
.SetRange Range("A4:I1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
.Range("A3").Select
End With

End Sub

Bonne soirée,

Setila
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Pour le second point :
Code:
Sub essai()
ActiveWorkbook.Worksheets("Archives TACHES").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Archives TACHES").Sort.SortFields.Add Key:=Range("B4:B1000") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Archives TACHES").Sort
.SetRange Range("A4:I1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
End Sub
Le .Range("A3").Select n'a rien à faire dans le With EndWith.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Si le but est de sélectionner et activer une sheet, Activate convient.
Sinon on a Select, mais tout dépend du contexte où on veut l'utiliser.
La question est "Comment faire pour activé les feuilles qui sont composés du nom "Archives" " donc Activate était pertinent. Je ne répondais qu'à la question posée.
Si c'est au sein de la macro donnée, alors ce n'est ni Select ni Activate :
VB:
Sub essai()
Dim Sh As Worksheet, NomFeuille As String
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name Like "*" & "Archive" & "*" = True Then NomFeuille = Sh.Name
Next Sh
ActiveWorkbook.Worksheets(NomFeuille).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(NomFeuille).Sort.SortFields.Add Key:=Range("B4:B1000") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(NomFeuille).Sort
.SetRange Range("A4:I1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
End Sub
 

SETILA

XLDnaute Junior
Hello à Tous,

Help please, tout fonctionné et je ne comprend pas pourquoi la le code ci-dessous ne fonctionne plus???

Sub mymacro()

Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Sh As Worksheet, NomFeuille As String
For Each Sh In ActiveWorkbook.sheets
If Sh.Name Like "*" & "Archive" & "*" = True Then NomFeuille = Sh.Name
Next Sh
ActiveWorkbook.Worksheets(NomFeuille).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(NomFeuille).Sort.SortFields.Add Key:=Range("B3:B1000") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(NomFeuille).Sort
.SetRange Range("A3:I1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

D'avance merci,

Setila
 

Pièces jointes

  • test fichier maintenanceV2.xlsm
    444.1 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui mais la macro que je vous ai donné ne faisait que recuperer le nom. C'était un exemple.
En PJ je traite toutes les archives.
Je mets dans le Statusbar la feuille traitée.
 

Pièces jointes

  • Copie de test fichier maintenanceV2.xlsm
    434.6 KB · Affichages: 2
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour à tous,

tant qu'à faire autant utiliser sh non ?
Et si tu veux traiter toutes les feuilles *archive* (j'ai repris la proposition de sylvanu) :
Code:
Sub essai()
    Dim Sh As Worksheet, NomFeuille As String
    For Each Sh In ActiveWorkbook.Sheets
        If Sh.Name Like "*" & "Archive" & "*" = True Then
            With Sh
                .Sort.SortFields.Clear
                .Sort.SortFields.Add Key:=Range("B4:B1000") _
                    , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                With .Sort
                    .SetRange Range("A4:I1000")
                    .Header = xlYes
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
                .Range("A3").Select
            End With
        End If
    Next Sh
End Sub
si ce n'est que certaines, compléter le test If Sh.Name Like
eric
 

Discussions similaires

Réponses
3
Affichages
568
Réponses
11
Affichages
420

Statistiques des forums

Discussions
312 087
Messages
2 085 198
Membres
102 815
dernier inscrit
Henridic