Automatisation Sheets.Visible

Bonjour à tous,

Afin d'en finir (en fin j'espere !!) avec mon fichier, j'aurais besoin d'automatiser le code VBA ci dessous.

En effet, quel que soit la valeur de la cellule situé en colonne B, si une Feuille porte comme nom sa valeur, alors rendre cette Feuille Visible.

Pour l'instant, à chaque fois que je crée une reference, je suis obligé de rajouter une ligne de code.

Merci d'avance.

Private Sub Worksheet_Calculate()

    Sheets("147").Visible = Application.CountIf(Columns("B:B"), 147) > 0
    Sheets("148").Visible = Application.CountIf(Columns("B:B"), 148) > 0
    Sheets("487").Visible = Application.CountIf(Columns("B:B"), 487) > 0
    Sheets("560").Visible = Application.CountIf(Columns("B:B"), 560) > 0
    Sheets("777").Visible = Application.CountIf(Columns("B:B"), 777) > 0
    Sheets("778").Visible = Application.CountIf(Columns("B:B"), 778) > 0
    Sheets("779").Visible = Application.CountIf(Columns("B:B"), 779) > 0
    Sheets("780").Visible = Application.CountIf(Columns("B:B"), 780) > 0

End Sub

Bonjour

Valable si tes noms de pages sont des nombres

Private Sub Worksheet_Calculate()
Dim I As Integer, Numero As Integer

  For I = 1 To Sheets.Count
    Numero = Val(Sheets(I).Name)
    If Numero > 0 Then
      Sheets(CStr(Numero)).Visible = Application.CountIf(Columns("B:B"), Numero) > 0
    End If
  Next I
End Sub

malheureusement, parfois on a des valeurs du type :

780A

777a

120'

435-2

104 bis

Bref la seule certitude c'est que la valeur dans la colonne est identique au nom de la Feuille

sinon, il y a aussi la cellule "I7" de ces Feuilles qui correspondent au nom de la Feuille et à la colonne.

Bonjour

Ne connaissant pas exactement la structure réelle de ton fichier

babouze64 a écrit :

sinon, il y a aussi la cellule "I7" de ces Feuilles qui correspondent au nom de la Feuille et à la colonne.

Essayes

Private Sub Worksheet_Calculate()
Dim I As Integer

  For I = 1 To Sheets.Count
    If CStr(Sheets(I).Range("I7")) = Sheets(I).Name Then
      Sheets(I).Visible = Application.CountIf(Columns("B:B"), Sheets(I).Name) > 0
    End If
  Next I
End Sub

Encore une fois, ça fonctionne.

Merci et A+

Rechercher des sujets similaires à "automatisation sheets visible"