VB/VBA pour afficher/masquer une liste de feuilles d'un excel.

VBATEST Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
VBATEST Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai une macro qui me permet d'afficher certaines feuilles et de masquer les autres,
J'ai un tableau en feuill1 avec le nom de chaque feuille dans la première colonne et un "1" ou "0" dans la seconde pour savoir si je dois afficher oui ou non.
Pour faire cette macro étant novice j'ai un peu de mal :

Voici la base qui ne marche malheureusement pas

Sub Afficher1()
'
' Afficher1 Macro
'
Sheets("Feuil1").Select
Dim L As Integer
Dim I As Integer
I = Range(A:A)
L = 1
For L = 1 To Range("B65356").End(xlUp).Row
    If Range(I & L) = 1 Then
Sheets(I).Visible = False
Next L 
   End If


Auriez vous une idée de comment je peux modifier ma macro pour cela fonctionne ? suis-je dans la bonne direction ?

Merci par avance


Configuration: Macintosh / Safari 12.1.1
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
bonjour,

voici une macro avec les noms des feuilles en colonne A et mettre x dans la colonne B pour masquer la feuille correspondante

Faire Alt f11 pour accéder à l'éditeur. ensuite aller dans le module de la feuille concernée en la sélectionnant en haut à gauche.

copier coller ce code:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Var As Variant
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
 Application.ScreenUpdating = False
 On Error Resume Next
 If Target.Value = "" Then
     Var = ActiveSheet.Cells(Target.Row, Target.Column - 1)
   Worksheets(Var).Visible = True
    Else
     Var = ActiveSheet.Cells(Target.Row, Target.Column - 1)
   Worksheets(Var).Visible = xlSheetHidden
     End If
End If
  Application.ScreenUpdating = True
End Sub



Voilà

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, suggestion:
Option Explicit

Private Sub Afficher1()
Dim nomfeuille As Range
Set nomfeuille = Sheets("Feuil1").[A1]
Do While nomfeuille <> ""
    Select Case nomfeuille.Offset(0, 1)
        Case 1
            Sheets(nomfeuille.Value).Visible = True
        Case 0
            Sheets(nomfeuille.Value).Visible = False
    End Select
    Set nomfeuille = nomfeuille.Offset(1, 0)
Loop
End Sub
0
VBATEST Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, je vais essayer avec ca !
0