XL 2016 Nom des feuilles

  • Initiateur de la discussion Initiateur de la discussion SETILA
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Bonsoir Setila,
Pour le point 1 essayez ce code :
Code:
Sub TrouveArchives()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name Like "*" & "Archive" & "*" = True Then Sheets(Sh.Name).Activate
Next Sh
End Sub
 
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.
 
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
 
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

Bonjour Setila,
Quelle feuille Archives voulez vous selectionner ?
Dans l'état la macro prend la dernière archive trouvée soit : "Archives CARTS WDS". Or cette feuille est vide de données.
Si on met des dates dans B3:Bxx, les filtrages fonctionnent correctement.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
319
Réponses
17
Affichages
1 K
Réponses
4
Affichages
284
Réponses
6
Affichages
1 K
Réponses
11
Affichages
794
Réponses
1
Affichages
1 K
Réponses
1
Affichages
823
Retour