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

Fermé
VBATEST Messages postés 2 Date d'inscription mardi 19 novembre 2019 Statut Membre Dernière intervention 20 novembre 2019 - Modifié le 19 nov. 2019 à 15:05
VBATEST Messages postés 2 Date d'inscription mardi 19 novembre 2019 Statut Membre Dernière intervention 20 novembre 2019 - 20 nov. 2019 à 00:12
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
19 nov. 2019 à 14:51
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 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
19 nov. 2019 à 15:01
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 mardi 19 novembre 2019 Statut Membre Dernière intervention 20 novembre 2019
20 nov. 2019 à 00:12
Merci beaucoup, je vais essayer avec ca !
0