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

Signaler
Messages postés
2
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
20 novembre 2019
-
VBATEST
Messages postés
2
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
20 novembre 2019
-
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

4 réponses

Messages postés
6436
Date d'inscription
jeudi 13 septembre 2007
Statut
Non membre
Dernière intervention
16 décembre 2019
423
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à

Messages postés
9118
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 décembre 2019
468
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
Messages postés
2
Date d'inscription
mardi 19 novembre 2019
Statut
Membre
Dernière intervention
20 novembre 2019

Merci beaucoup, je vais essayer avec ca !