Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Figer les Volets

KTM

XLDnaute Impliqué
Bonjour chers tous
je voudrais par macro figer les volets dans cinquante feuilles .
j'ai utilisé le code ci-dessous mais une erreur me revient sur la ligne: .Range("F11").Select

VB:
Sub FigerVolet()
Dim T
Dim i As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
    T = Array(51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, _
    70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
    For i = LBound(T) To UBound(T)
       With Worksheets(T(i))
    .Range("F11").Select
    ActiveWindow.FreezePanes = True
    End With
    Next i
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjours a tout les deux
tu pourrais ajouter le retour au sheet de départ(celui sur le quel tu étais)
VB:
Sub FigerVolet()
    Dim T, i As Long, actifSheet As Worksheet
    Set actifSheet = ActiveSheet
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    T = Array(51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, _
     70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
     For i = LBound(T) To UBound(T)
        With Worksheets(T(i))
            .Activate
            .Range("F11").Select
            ActiveWindow.FreezePanes = True
        End With
    Next i
    actifSheet.Activate
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
attention tout de même à fonctionner avec un array ,il faut etre sur que les sheets 51 et 100 existent
ou alors ajouter un test d'existence
 

patricktoulon

XLDnaute Barbatruc
re
@sylvanu ou tout simplement un test ( sheet.count VS i )

et en gardant l'array c'est pareil
if thisworkbook.sheets.count<=T(i )then
ou sans array
if thisworkbook.sheets.count<=i then


VB:
Sub FigerVolet()

    Dim T, i As Long, actifSheet As Worksheet
    Set actifSheet = ActiveSheet
    Application.EnableEvents = False
    Application.ScreenUpdating = False
   ' T = Array(51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, _
     70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
 'For i = LBound(T) To UBound(T)
 For i = 51 to 100
       if thisworkbook.sheets.count<=i then     
        With Worksheets(T(i))
            .Activate
            .Range("F11").Select
            ActiveWindow.FreezePanes = True
        End With
     end if   
 Next i
    actifSheet.Activate
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…