XL 2016 Clôturer-This worbook vba

  • Initiateur de la discussion Initiateur de la discussion Keran
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

Keran

Guest
Bonjour j'aurais aimer savoir si il etais possible de faire une macro "generique" avec ma macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
For Each WS In Sheets(Array("Janvier", "HJanvier", "BJanvier", "Bilan"))
WS.Unprotect ("azerty")
WS.Calculate
WS.Protect ("azerty"), DrawingObjects:=True, Contents:=True, Scenarios:=True _
                       , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowFiltering:=True
Next WS
End Sub
Pour dans l'idee faire comme mais en worksheet change et non active
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim Cel As Range
Application.ScreenUpdating = False
With Sh
    If .Name = "B" & .Range("A1") Then
        For Each Cel In Sh.Range("B8:CA8")
            If Not IsError(Cel) Then Cel.EntireColumn.Hidden = Cel = ""
        Next Cel
    End If
End With
Application.ScreenUpdating = True
End Sub

merci d'avance
 
Bonjour , a l'heure actuel j'ai la première macro qui est dupliquer pour les douze mois j'aimerais savoir si vous pensez qu'il est possible de faire une seul macro qui pourrais gérer les douze mois/feuilles .
Merci encore.
 
Je voulais faire une fonction du genre mais je pense me tromper
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
With Sh
For Each WS In Sheets(Array(Sh, ("H" & Sh), ("B" & Sh), "Bilan"))
    If .Name = .Range("A1") Then
WS.Unprotect ("azerty")
WS.Calculate
WS.Protect ("azerty"), DrawingObjects:=True, Contents:=True, Scenarios:=True _
                       , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowFiltering:=True


        For Each Cel In Sh.Range("B8:CA8")
            If Not IsError(Cel) Then Cel.EntireColumn.Hidden = Cel = ""
        Next Cel
    End If
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
647
Réponses
7
Affichages
799
Réponses
2
Affichages
483
Retour