Bonjour,

J'ai créé une macro qui permet à mes utilisateurs d'afficher leur feuille de saisie au fur et à mesure qu'ils ont besoin d'une nouvelle. Les feuilles de saisie existent mais sont masquées et un bouton permet d'afficher une nouvelle feuille à compléter.

Je souhaite utiliser le codename de la feuille car le nom de la feuille évoluera en fonction d'une donnée saisie.

Pour commencer j'ai fait la macro suivante qui fonctionne avec 2 feuilles.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub NouvelleFO()
 
    Dim Cl As Workbook
 
    Set Cl = ActiveWorkbook
    If Cl.Worksheets(Feuil16.Name).Visible = False Then
 
        Cl.Worksheets(Feuil16.Name).Visible = True
 
    Else
        Cl.Worksheets(Feuil17.Name).Visible = True
 
    End If
 
End Sub
Cette macro fonctionne mais uniquement sur 2 feuilles alors que j'aurais jusqu'à 20 feuilles possibles.
Du coup, j'ai essayé de la transformer en boucle et là ça ne marche pas car je n'arrive pas à mettre la variable sur le codename de la feuille

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub NouvelleFO()
Dim Cl As Workbook 
Set Cl = ActiveWorkbook 
Dim i As Integer
Dim codeNameFeuille As String
For i = 1 To 20
codeNameFeuille = "Feuil" & i
If Cl.Worksheets(codeNameFeuille.Name).Visible = False Then
Exit For 'Si condition vraie, on quitte la boucle For !
End If
Cl.Worksheets(codeNameFeuille.Name).Visible = true
End Sub
Pouvez-vous m'aider car il bloque sur Cl.Worksheets(codeNameFeuille.Name).Visible

Merci d'avance