XL 2010 Afficher onglets d'une liste

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 !

erwanhavre

XLDnaute Occasionnel
Bonjour
Encore besoins de vos lumières ..
voir pj
j'aimerai qu'en appuyant sur les boutons on affiche uniquement les onglets concerné dans la liste.

Exemple: lorsque l'on appuie sur le bouton Jean Jacques on aurai uniquement les onglets Nom1 prénom1 et Nom5 prénom5

est ce faisable ?

Merci
 

Pièces jointes

Bonsoir erwanhavre, Lone-wolf,
Code:
Sub Affiche()
Dim prenom$, t, s As Object, nom$, i%
Application.ScreenUpdating = False
With Sheets("Liste")
    prenom = .DrawingObjects(Application.Caller).Text
    t = .[A4].CurrentRegion.Resize(, 6) 'tableau VBA, plus rapide
    For Each s In Sheets
        nom = Replace(s.Name, "é", "e")
        If nom <> .Name Then
            s.Visible = prenom = "Tous"
            For i = 2 To UBound(t)
                If t(i, 1) & " " & t(i, 2) = nom And t(i, 6) = prenom Then s.Visible = xlSheetVisible: Exit For
            Next i
        End If
    Next s
    .Activate
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

Bonsoir,
Une piste:
VB:
// Pour jaques
Sub Jaques()
    Call hidesheets
    Sheets("Nom1 prénom1").Visible = True
    Sheets("Nom5 prénom5").Visible = True
    Sheets("Liste").Select
End Sub

Sub hidesheets()
Dim xWs As Worksheet
    Dim xName As String
    For Each xWs In Application.ActiveWorkbook.Worksheets
        If xWs.Name <> "Liste" Then
            xWs.Visible = xlSheetHidden
        End If
    Next
End Sub
@+
 
Bonjour le fil, le forum,

Fichier (3) avec des cases à cocher :
Code:
Sub Affiche()
Dim prenom$, vis As Boolean, t, s As Object, nom$, i%
Application.ScreenUpdating = False
With Sheets("Liste")
    With .DrawingObjects(Application.Caller)
        prenom = .Text
        vis = .Value = xlOn
    End With
    t = .[A4].CurrentRegion.Resize(, 6) 'tableau VBA, plus rapide
    For Each s In Sheets
        nom = Replace(s.Name, "é", "e")
        If nom <> .Name Then
            For i = 2 To UBound(t)
                If t(i, 1) & " " & t(i, 2) = nom And t(i, 6) = prenom Then s.Visible = vis: Exit For
            Next i
        End If
    Next s
    .Activate
End With
End Sub
A+
 

Pièces jointes

- 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

Réponses
36
Affichages
3 K
Réponses
6
Affichages
983
Retour