un internaute
XLDnaute Impliqué
Bonjour le forum
Je voudrais faire afficher la ligne 5 sur tout le classeur en double clic sur n'importe quelle feuille mais sans avoir macro dans module standard => AfficherMasquerLigne5()
Puis la faire masquer à l'enregistrement
Ce que ça fait maintenant mais avec module AfficherMasquerLigne5()
Merci à vous pour vos éventuelles réponses
Code module standard
	
	
	
	
	
		
Code pour l'enregistrement
	
	
	
	
	
		
Double click ci-dessous
	
	
	
	
	
		
	
		
			
		
		
	
				
			Je voudrais faire afficher la ligne 5 sur tout le classeur en double clic sur n'importe quelle feuille mais sans avoir macro dans module standard => AfficherMasquerLigne5()
Puis la faire masquer à l'enregistrement
Ce que ça fait maintenant mais avec module AfficherMasquerLigne5()
Merci à vous pour vos éventuelles réponses
Code module standard
		VB:
	
	
	Sub AfficherMasquerLigne5()   'Macro pour faire afficher ligne 5 dans tout le classeur
    For i = 1 To Sheets.count
        If Sheets(i).Name <> "MENU" Then
            With Sheets(i)
                If .Rows(5).Hidden = True Then
                    .Rows(5).Hidden = False
                Else
                    .Rows(5).Hidden = True
                End If
            End With
        End If
    Next i
End SubCode pour l'enregistrement
		Code:
	
	
	Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim i As Long
    Application.ScreenUpdating = False
    Dim FeuilleActive As String
    Application.EnableEvents = False
    FeuilleActive = ActiveSheet.Name
    For i = 1 To Sheets.count
        On Error Resume Next
        If Sheets(i).Name <> "MENU" Then
          Sheets(i).Range("F1,H1,I1").EntireColumn.Hidden = True
          Sheets(i).Rows(5).Hidden = True
          
        End If
    Next i
            Range("A1").Select
        On Error GoTo 0
    Sheets(FeuilleActive).Select
Sortie:
    Application.EnableEvents = True
End SubDouble click ci-dessous
		Code:
	
	
	Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
 Dim Ws As Worksheet
 Cancel = Not Cancel
 Application.ScreenUpdating = False
  Select Case Target.Address
    Case "$A$3"
        If Not Target.Comment Is Nothing Then AfficherMasquerLigne5   'ligne à supprimer pour éviter le module standard
    Case "$J$1"
        UsfChoix.Show 0
    Case "$E$1"
    
      For Each Ws In Sheets
        Ws.Range("F1,H1,I1").EntireColumn.Hidden = Not Ws.Range("F1,H1,I1").EntireColumn.Hidden
    Next Ws
    Exit Sub
     End Select
    If Not Intersect(Range("H6:H36"), Target) Is Nothing Then
    Cancel = True
    TbCoul = Array(8, 5)
    Tb = Array("", "toto")
    'X = UCase(Trim(Target))   'Pour mettre en Majuscule
    X = (Trim(Target))
    If UBound(Filter(Tb, X)) >= 0 Then
      Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
        Target = Tb(Indice)
        Couleur = TbCoul(Indice)
        If Couleur = 0 Then
          Couleur = Target.Offset(0, -1).Interior.ColorIndex
        End If
        Target.Interior.ColorIndex = Couleur
    Else
        Target = ""
    End If
     ElseIf Not Intersect(Range("I6:I36"), Target) Is Nothing Then
    Cancel = True
    TbCoul = Array(8, 16, 3)
    Tb = Array("", "SP 95", "SP 98")
    'X = UCase(Trim(Target))   'Pour mettre en Majuscule
    X = (Trim(Target))
    If UBound(Filter(Tb, X)) >= 0 Then
      Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
        Target = Tb(Indice)
        Couleur = TbCoul(Indice)
        If Couleur = 0 Then
          Couleur = Target.Offset(0, -1).Interior.ColorIndex
        End If
        Target.Interior.ColorIndex = Couleur
    Else
        Target = ""
    End If
End If 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		