Affichage onglet sélectif

Bonjour,

Je souhaiterai pouvoir afficher les onglets en fonction d’une partie de leur nom.

Exemple : Afficher uniquement les onglets ayant dans le nom: 2018 ou plan et afficher une invite si la valeur n’existe pas.

En vous remerciant pour votre aide.

5sel-onglet.zip (12.63 Ko)

Bonjour

Un début de piste :

(Je ne connais pas le bout de code manquant :/ )

Private Sub CommandButtonDemasqueValeur_Click()
Dim Fe As Worksheet
Dim x As String

x = Me.TextBoxValeur.Text

    For Each Fe In ThisWorkbook.Worksheets

        If Fe.Name Like "*x*" Then
            'Code pour afficher l'onglet qui contient X
        Else
            Exit Sub
        End If

    Next Fe

End Sub

Salut Pilougne,

Salut GGautier,

Un double-clic dans n'importe quelle feuille ouvre l'Userform.

Public Sub Masquage(ByVal iIdx%)
'
Dim iFlag%, iNb%
'
For x = Sheets.Count To 1 Step -1
    If iIdx = 3 Then
        iNb = IIf(InStr(UCase(Sheets(x).Name), UCase(Me.txt.Text)) > 0, iNb + 1, iNb)
        iFlag = IIf(InStr(UCase(Sheets(x).Name), UCase(Me.txt.Text)) > 0, 1, 0)
    End If
    Sheets(x).Visible = IIf(iIdx = 1 Or (iIdx = 2 And Sheets(x).Name = "Index") Or _
                        (iIdx = 3 And iFlag > 0), True, IIf(x = 1 And iIdx = 3 And iNb = 0, True, False))
Next
If iIdx = 3 And iNb = 0 Then MsgBox "Aucune feuille ne comporte le texte : " & UCase(Me.txt.Text), vbInformation + vbOKOnly, "Masquage"
Me.txt.SetFocus
Me.txt.SelStart = 0
Me.txt.SelLength = Len(Me.txt.Text)
'
End Sub

A+

10selonglet.xlsm (25.06 Ko)

Bonjour et merci à vous deux GGautier et curulis57

J'avais commencé à regarder la proposition de GGautier et je bloque aussi sur la suite du code, j'ai testé le code de curulis57 et il fonctionne pour la recherche mais plante lorsqu'on demande l'index ou une valeur qui ne trouve pas!

curulis57 peux-tu m'expliquer un peu ton code afin que je puisse le comprendre.

Merci encore.

Pilougne

Salut Pilougne,

  • qu'appelles-tu "Planter" ?
  • qu'appelles-tu "demander l'index ou une valeur qui ne trouve pas" ?

Ici, ça roule sans souci !!

A+

Bonjour curulis57,

Je viens de refaire la manip, si tu tape v dans la zone de recherche et que tu cliques sur Only show with v , il affiche bien les pages concernées, cependant si je tape par la suite par exemple z dans la zone de recherche et que je clique sur Only show with z (ou index) il affiche une invite d'erreur d'exécution 1004 ( Impossible de définir la propriété visible de la classe Worksheet.

Salut Pilougne,

j'ai effectivement eu le cas aussi mais, depuis 1/4 d'heure que je passe d'une option à l'autre sans souci, je ne parviens pas à reproduire les circonstances de l'erreur qui doit être très particulière!

Je continue et reviens plus tard.

A+

Bonjour,

Je viens d'essayer de voir ou se trouvait le problème, l'erreur apparaît lorsque la valeur de x passe de 2 à 1

, je pense qu'il bloque car il ne trouve aucune feuille à afficher.

Pour vérifier j'ai laissé une feuille visible et ça fonctionne, il doit donc y avoir un cas ou il ne trouve rien à afficher et la je bloque.

Peux tu me dire ce que signifie le > 0 dans ( iNb = IIf(InStr(UCase(Sheets(x).Name), UCase(Me.txt.Text)) > 0, iNb + 1, iNb)).

Sheets("Pilougne").Visible = True

Sheets(x).Visible = IIf(iIdx = 1 Or (iIdx = 2 And Sheets(x).Name = "Index") Or _

(iIdx = 3 And iFlag > 0), True, IIf(x = 1 And iIdx = 3 And iNb = 0, True, False))

Je te remercie et te souhaite un bon Weekend.

Pilougne

Rechercher des sujets similaires à "affichage onglet selectif"