Bonjour à tous,
Dans un tableau d'une feuille de calcul Excel, j'ai une liste de numéros de 1 à 28. Ces numéros sont dans la colonne A, de la ligne 11 à 38. Ils correspondent à des feuilles Excel, du même fichier, ces feuilles se nomment Fich1, Fich2, Fich3,...Fich28.
J'essaie de mettre en place une macro qui me permettrait d'ouvrir la feuille Fich selon le numéro dans la cellule. Par exemple, je clique en A11 où se trouve le numéro 1 alors la feuille Fich1 s'affiche mais pas les autres.
J'ai fait cette macro mais elle ne fonctionne que pour la cellule A11
Merci par avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection = Range("A11") Then Sheets("Fich1").Activate Else Exit Sub End If End Sub
J'ai tenté une approche avec cette macro, mais je n'arrive à mettre la suite pour sélectionner la feuille à partir du numéro dans la cellule
J'ai trouvé, voici le code.
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
16
17
18
19
20
21
22
23 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim nomfeuille As String, WS As Object Application.ScreenUpdating = False 'Je rends toutes les feuilles visibles For Each WS In ActiveWorkbook.Worksheets WS.Visible = True Next WS 'Je sélectionne la feuille de mon fichier à partir du numéro dans la cellule nomfeuille = 'Je ne sais pas quoi mettre ici ActiveWorkbook.Sheets(nomfeuille).Activate 'Je masque les autres feuilles For Each WS In ActiveWorkbook.Worksheets If WS.name <> nomfeuille Then WS.Visible = xlSheetVeryHidden Sheets("Recap").Visible = True Next WS End Sub
ça fonctionne, mais dites moi si l'on peut faire mieux.
Je rencontre un problème, si je clique sur une cellule en dehors de celles de la colonne A, j'ai un message d'erreur et cela est normal puisque aucune feuille ne correspond à la cellule cliquée.
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
16
17
18
19
20
21
22
23
24 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim nomfeuille As String, WS As Object Application.ScreenUpdating = False 'Je rends toutes les feuilles visibles For Each WS In ActiveWorkbook.Worksheets WS.Visible = True Next WS 'Je sélectionne la feuille de mon fichier à partir du numéro dans la cellule nomfeuille = ("Fich" & Selection.Cells.Value) ActiveWorkbook.Sheets(nomfeuille).Activate 'Je masque les autres feuilles For Each WS In ActiveWorkbook.Worksheets If WS.Name <> nomfeuille Then WS.Visible = xlSheetVeryHidden Sheets("Recap").Visible = True Next WS End Sub
Quelle est la solution ?
Merci par avance pour votre aide
Partager