Bonjour,
Je suis entrain de créer un fichier pour gérer des contrôles qualités.
Pour que ce fichier soit facilement lisible, il y a la Feuil2(Liste des contrôles) qui est la feuille principale où sont regroupé les informations principales qui est visible.
Par contre toutes les autres feuilles sont masquées et atteignable pour l'instant par des boutons/ macro, situés dans la colonne I.
Exemple:
Sub Bouton9_Cliquer()
' Bouton9_Cliquer Macro
' Lien vers feuille CTR-Blocage - 004, Suivi du contrôle
Sheets("CTR-Blocage - 004").Visible = True
'Pour afficher la feuille masquée
Sheets("CTR-Blocage - 004").Select
Range("A1").Select
Selection.End(xlDown).Offset(1).Select
'Pour placer le curseur sur la première ligne vide
End Sub
Au départ cela convenait, mais au fur et à mesure, le nombre de contrôles et de feuilles a fortement augmenté, j'en suis à près de 100.
En parcourant des forums j'ai trouvé une solution qui conviendrait mieux celle de procédures d'évènements Worksheet_BeforeDoubleClick.
J'ai trouvé l'exemple qui suit, mais je peine à l'adapter à mon fichier
Function ExisteFeuille(S) As Boolean
On Error Resume Next
ExisteFeuille = Worksheets(S).Index > 0
End Function
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect([A11:A28], Target) Is Nothing Then '......................................................................................... Je pense devoir le remplacer par ([I2:I100], Target)
Choix = "Fich" & Target '.......................................C'est ici que je peine Dans l'exemple les feuilles commençaient par Fich suivi d'un nombre. Dans mon fichier.e nom des cellules de la colonne I et le nom des feuilles sont:
CTR-Blocage - 001
CTR-Blocage - 002
...
CTR-Blocage -016
CTR-EAR - 001
etc
If ExisteFeuille(Choix) Then
For Each Ws In Worksheets
If Ws.Name = Choix Then Ws.Visible = xlSheetVisible Else _
If Ws.Name <> Me.Name Then Ws.Visible = xlSheetVeryHidden
Next
Cancel = True
Worksheets(Choix).Activate
End If
End If
End Sub
Comment puis-je adapter ce "modèle".
C'est la première fois que je pose une question sur un forum, d'habitude je me contente de lire les précieuses réponses qui y sont apportées.
C'est pourquoi je vous demande beaucoup d'indulgence pour la forme sous laquelle est faite cette demande.
Merci à ceux et celles qui prendront le temps de m'aider.
Patsylla
Je suis entrain de créer un fichier pour gérer des contrôles qualités.
Pour que ce fichier soit facilement lisible, il y a la Feuil2(Liste des contrôles) qui est la feuille principale où sont regroupé les informations principales qui est visible.
Par contre toutes les autres feuilles sont masquées et atteignable pour l'instant par des boutons/ macro, situés dans la colonne I.
Exemple:
Sub Bouton9_Cliquer()
' Bouton9_Cliquer Macro
' Lien vers feuille CTR-Blocage - 004, Suivi du contrôle
Sheets("CTR-Blocage - 004").Visible = True
'Pour afficher la feuille masquée
Sheets("CTR-Blocage - 004").Select
Range("A1").Select
Selection.End(xlDown).Offset(1).Select
'Pour placer le curseur sur la première ligne vide
End Sub
Au départ cela convenait, mais au fur et à mesure, le nombre de contrôles et de feuilles a fortement augmenté, j'en suis à près de 100.
En parcourant des forums j'ai trouvé une solution qui conviendrait mieux celle de procédures d'évènements Worksheet_BeforeDoubleClick.
J'ai trouvé l'exemple qui suit, mais je peine à l'adapter à mon fichier
Function ExisteFeuille(S) As Boolean
On Error Resume Next
ExisteFeuille = Worksheets(S).Index > 0
End Function
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect([A11:A28], Target) Is Nothing Then '......................................................................................... Je pense devoir le remplacer par ([I2:I100], Target)
Choix = "Fich" & Target '.......................................C'est ici que je peine Dans l'exemple les feuilles commençaient par Fich suivi d'un nombre. Dans mon fichier.e nom des cellules de la colonne I et le nom des feuilles sont:
CTR-Blocage - 001
CTR-Blocage - 002
...
CTR-Blocage -016
CTR-EAR - 001
etc
If ExisteFeuille(Choix) Then
For Each Ws In Worksheets
If Ws.Name = Choix Then Ws.Visible = xlSheetVisible Else _
If Ws.Name <> Me.Name Then Ws.Visible = xlSheetVeryHidden
Next
Cancel = True
Worksheets(Choix).Activate
End If
End If
End Sub
Comment puis-je adapter ce "modèle".
C'est la première fois que je pose une question sur un forum, d'habitude je me contente de lire les précieuses réponses qui y sont apportées.
C'est pourquoi je vous demande beaucoup d'indulgence pour la forme sous laquelle est faite cette demande.
Merci à ceux et celles qui prendront le temps de m'aider.
Patsylla
Dernière édition: