RÉSOLU] Double clic cellule A2

un internaute

XLDnaute Impliqué
Bonjour le forum
Dans ThisWorkbook jai cette macro

VB:
Private Sub Workbook_Open()
 Dim Sh As Worksheet
 Dim An%
 An = Year(Date)
 For Each Sh In ThisWorkbook.Worksheets
  With Sh
   If .Name <> "Retraites " & An Then .Visible = xlSheetVeryHidden
  End With
Range("A1").Select
 Next
End Sub

Dans un module j'ai cette macro


Code:
Sub AfficherOnglets()
Application.ScreenUpdating = False
Dim Onglets As Worksheet
   For Each Onglets In Worksheets
    Onglets.Visible = True
  Next Onglets
Application.ScreenUpdating = True
End Sub

Je voudrais afficher masquer toutes les feuilles par un doubleclic sur cellule A2
Et aussi faire apparaître que l'année en cours (2019) à l'enregistrement
Merci à vous
 

fanfan38

XLDnaute Barbatruc
Bonjour
Un fichier est toujours le bienvenu...
Faire un clic droit sur l'onglet de la feuille concernée
choisir visualiser le code
copier coller la macro ci dessous...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row <> 2 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name <> CStr(Year(Date)) Then
Select Case Sheets(i).Visible
Case Is = False
Sheets(i).Visible = True
Case Is = True
Sheets(i).Visible = False
End Select
End If
Next
Application.ScreenUpdating = True
End Sub

A+ François
 

fanfan38

XLDnaute Barbatruc
Voilà pourquoi il y a une erreur...
ci joint nouvelle macro à mettre sur la feuille Retraites 2019

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row <> 2 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Application.ScreenUpdating = False
Dim i As Integer, nomfeuille As String
nomfeuille = ActiveSheet.Name
For i = 1 To Sheets.Count
If Sheets(i).Name <> nomfeuille Then
Select Case Sheets(i).Visible
Case Is = False
Sheets(i).Visible = True
Case Is = True
Sheets(i).Visible = False
End Select
End If
Next
Application.ScreenUpdating = True
End Sub

A+ François
 

job75

XLDnaute Barbatruc
Bonjour un internaute, fanfan38,

Avec ces macros dans le ThisWorkbook du fichier joint :
VB:
Private Sub Workbook_Open()
MasqueSauf "Retraites " & Year(Date) 'nom adaptable
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$A$2" Then Exit Sub
Cancel = True
For Each Sh In Sheets
    If Sh.Visible <> xlSheetVisible Then Affiche: Exit Sub
Next
MasqueSauf "Retraites " & Year(Date) 'nom adaptable
End Sub

Sub MasqueSauf(nom$)
Dim Sh As Object
On Error Resume Next
If IsError(Sheets(nom)) Then MsgBox "Créez la feuille '" & nom & "' !", 48: Affiche: Exit Sub
For Each Sh In Sheets
    If Sh.Name <> nom Then Sh.Visible = xlSheetHidden
Next
End Sub

Sub Affiche()
Dim Sh As Object
For Each Sh In Sheets
    Sh.Visible = xlSheetVisible
Next
End Sub
Bonne journée.
 

Pièces jointes

  • Retraites(1).xlsm
    22.5 KB · Affichages: 8

un internaute

XLDnaute Impliqué
Bonjour [U]job75[/U]
Au moment où j'ai enlevé [RÉSOLU) j'ai reçu ton post
Eh! oui ça n'enregistrais pas à annee en cours et il fallait cliquer sur une autre cellule pour pouvoir recliquer sur A2.
Là tout fonctionne à merveille
Ce matin j'étais un peu pressé (comme tout retraité) et je ne l'avais pas vu
Merci à
 

un internaute

XLDnaute Impliqué
Bonjour job75
Pas d'inquiètude tout fonctionne bien
J'ai eu le temps de regarder un peu plus près
Moi j'ai une macro intitulée NouvelleAnnee dans un module standard
Peut-on "l'insérer" dans ce que tu as fait?
Si trop de "casse" on en reste là
Bien cordialement
 

Discussions similaires

Réponses
14
Affichages
388
Compte Supprimé 979
C
Réponses
12
Affichages
252

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal