Sélection de feuilles selon la couleur

Bonjour à tous,

J'ai un classeur excel qui contient 53 feuilles. Certaines de ces feuilles sont en vert, d'autres en rouge; d'autres encore en jaune.

Alors, pour des besoins d'analyse, souvent, j'ai seulement besoin de travailler sur des feuilles spécifiques( par exemple les feuilles en vert).

J'aimerais bien avoir une méthode pour le faire.

Quelqu'un pourrait-il m'aider?

Merci

Bonjour,

Ce code :

  • Fait l'inventaire des onglets présents dans un nouvel onglet.
  • Met la couleur de l'onglet en colonne B.
  • Fait un lien avec l'onglet en colonne C.
Option Explicit

Sub CreerMenuOnglets()

Dim I As Integer, LigneEncours As Integer
Dim ShMenu As Worksheet
Dim AdresseLien As String

    Set ShMenu = Sheets.Add(before:=Sheets(1))

    With ShMenu
         .Range("A10:C10") = Array("Onglet", "Couleur", "Lien")
    End With

    LigneEncours = 11

    For I = 1 To Sheets.Count
        With Sheets(I)
             Select Case .Name

                    Case ShMenu.Name

                    Case Else

                         With ShMenu.Cells(LigneEncours, 1)
                              .Value = Sheets(I).Name
                              AdresseLien = "'" & .Value & "'!A1"
                              .Hyperlinks.Delete
                              ShMenu.Hyperlinks.Add Anchor:=ShMenu.Cells(LigneEncours, 3), Address:="", SubAddress:=AdresseLien, TextToDisplay:=.Value
                              If Sheets(I).Tab.Color > 0 Then
                                 .Offset(0, 1).Interior.Color = Sheets(I).Tab.Color
                                 .Offset(0, 1).Value = Sheets(I).Tab.Color
                              End If
                              LigneEncours = LigneEncours + 1
                         End With
              End Select
        End With
    Next I

    Set ShMenu = Nothing

    Application.ScreenUpdating = True

End Sub

Bonjour !

Eric, je retiens ton code qui est très bien ! Je me suis permis une adaptation qui est un peu plus condensée. J'ai aussi ajouté un filtre qui permet de trier les onglets par couleur :

Sub CreerMenuOnglets()

Dim I As Integer

Application.ScreenUpdating = False
If Sheets(1).Name <> "ListeFeuilles" Then Sheets.Add before:=Sheets(1) Else Sheets(1).Cells.Delete
With Sheets(1)
    .Name = "ListeFeuilles"
    .Range("A1") = "Feuilles"
    .Range("A1").AutoFilter
    For I = 2 To Sheets.Count
      .Cells(I, 1) = Sheets(I).Name
      .Hyperlinks.Add .Cells(I, 1), "", "'" & .Cells(I, 1) & "'!A1", , .Cells(I, 1).Value
      .Cells(I, 1).Interior.Color = Sheets(I).Tab.Color
    Next I
End With

End Sub

Merci à vous.

@ Pedro, j'ai essayé le code, il fonctionne.

Toutefois, saurais-tu comment afficher seulement les feuilles jaunes par exemple, tout en masquant les autres feuilles?

Bonjour Pedro,

Il ne faudrait prendre en compte la couleur que lorsque l'onglet est en couleur sinon, cela apparaît en noir.

C'est ce que je fais dans :

                             If Sheets(I).Tab.Color > 0 Then
                                 .Offset(0, 1).Interior.Color = Sheets(I).Tab.Color
                                 .Offset(0, 1).Value = Sheets(I).Tab.Color
                              End If

Bonsoir,

Un essai en Pj

Slts

Merci à vous.

@ Pedro, j'ai essayé le code, il fonctionne.

Toutefois, saurais-tu comment afficher seulement les feuilles jaunes par exemple, tout en masquant les autres feuilles?

Avec le filtre sur l'en-tête de colonne, vous pouvez limiter l'affichage des liens selon leur couleur de fond.

@Eric : concernant la couleur, il me semble qu'en l'absence de coloration spécifique, le fond de cellule reste transparent et non noir. Si je me trompe, n'hésite pas à publier une mise à jour, c'est de toute façon ton travail à l'origine !

@Pedro : Concernant la couleur, la réponse est non.

Bonjour Eric

@Pedro : Concernant la couleur, la réponse est non.

Mea culpa, tu as raison !

Si je reprends ton code, il faut donc ajouter un If :

.Cells(I, 1).Interior.Color = Sheets(I).Tab.Color
'Devient : 
If Sheets(I).Tab.Color > 0 Then .Cells(I, 1).Interior.Color = Sheets(I).Tab.Color

Bonjour à tous,

Merci pour vos contributions.

@Boss_68, c'est exactement ce que je cherchais.

Merci

Rechercher des sujets similaires à "selection feuilles couleur"