VB/VBA pour afficher/masquer une liste de feuilles d'un excel.
VBATEST
Messages postés
2
Statut
Membre
-
VBATEST Messages postés 2 Statut Membre -
VBATEST Messages postés 2 Statut Membre -
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
Auriez vous une idée de comment je peux modifier ma macro pour cela fonctionne ? suis-je dans la bonne direction ?
Merci par avance
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
3 réponses
-
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à
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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 -