XL 2016 Figer les Volets

  • Initiateur de la discussion Initiateur de la discussion KTM
  • 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 !

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
 
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
 
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
 
- 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

Discussions similaires

Réponses
1
Affichages
406
Réponses
2
Affichages
1 K
Réponses
2
Affichages
884
  • Question Question
Réponses
3
Affichages
970
Réponses
1
Affichages
1 K
Réponses
3
Affichages
755
Réponses
9
Affichages
1 K
Retour