VBA Excel

Résolu
Bonjour,

Je travaille sur Excel 2010 et je voudrais connaître le code VBA à entrer pour pouvoir figer les volets de tous les onglets de mon classeur en B6.

Merci

4 réponses

  1. Contributeur
    Bonjour Pijaku et Anne

    Une proposition en bouclant sur les onglets :
    For ifeuil = 1 To Sheets.Count
            Sheets(ifeuil).Activate
            Range("B6").Select
            ActiveWindow.FreezePanes = True
    Next ifeuil
    


    Cordialement,
    2
    1. Bonjour à tous,

      Encore un peu de syntaxe en cadeau :
       For Each ws In ActiveWorkbook.Sheets
              ws.Activate
              Range("B6").Select
              ActiveWindow.FreezePanes = True
          Next ws 


      A+
      0
    2. Bonjour,

      Merci Pilas 31, et merci Zoul67, vos codes fonctionnent parfaitement!!

      Merci encore!
      0
  2. Bonjour

    et avec la boucle

    Sub Test()
    For I = 1 To Sheets.Count
    Sheets(Sheets(I).Name).Select
    ActiveWindow.FreezePanes = False
    Range("B6").Select
    ActiveWindow.FreezePanes = True
    Next
    End Sub

    A+
    Maurice
    0
    1. Bonjourer

      avant de Figer il faut le mettre a False
      ex:
      Sub FigeOnglet()
      ActiveWindow.FreezePanes = False
      Range("B6").Select
      ActiveWindow.FreezePanes = True
      End Sub

      A+
      Maurice
      0
      1. Modérateur
        Bonjour,

        Apprenons ensemble si vous le voulez bien.

        1- ouvrir un classeur vide,
        2- Cliquer sur l'onglet "Développeur",
        3- Cliquer sur "Enregistrer une macro",
        4- Cliquer sur la cellule B6,
        5- Cliquer sur l'onglet "Affichage",
        6- Cliquer sur "Figer les volets", choisir l'option souhaitée,
        7- Cliquer sur l'onglet "Développeur",
        8- Cliquer sur "Arrêter l'enregistrement,
        9- Alt + F11
        10- Double clic sur Modules (dans la fenêtre VBA-Project en haut à gauche)
        11- Double clic sur "Module 1",
        12- Copiez le code obtenu et revenez le coller ici dans une réponse.

        Nous adapterons ce code à votre question dès votre retour...
        0
        1. Bonjour,

          Merci. Voici le code obtenu:

          Sub Freeze()
          '
          ' Freeze Macro
          '

          '
          Range("B6").Select
          ActiveWindow.FreezePanes = True
          End Sub


          Il s'agit maintenant de l'appliquer à l'ensemble des onglets de mon classeur. Je pense que ça doit passer par une boucle, mais je suis incapable de dire laquelle et comment l'y intégrer...

          Merci!
          0
        2. Modérateur
          Comme dis plus bas par les deux comparses (que je salue au passage), il te faut une boucle.
          Pour ne pas faire de doublon, je place ici un troisième code...

          Sub ZiVa()
          'Déclaration de la variable "Feuille" :
          Dim maFeuil As Worksheet
          
          'Boucle sur tous les objets "WorkSheets" (feuilles) du classeur :
          For Each maFeuil In ThisWorkbook.Worksheets
              ' "avec" ma feuille
              With maFeuil
                  'on l'active
                  .Activate
                  'on sélectionne la cellule B6
                  .Range("B6").Select
              End With
              'on "FreezePane" la feuille en cours
              ActiveWindow.FreezePanes = True
          'Feuille suivante
          Next
          End Sub
          0
        3. Merci pour la réponse Pijaku, mais ça ne fonctionne pas.
          En revanche, les codes de Pilas 31 et Zoul67 m'ont permis de figer en B6 les volets de tous mes onglets.
          Merci encore à eux!
          0
        4. Modérateur
          J'ai du me tromper quelque part...
          Mais ou?

          ....

          Pourtant ça fonctionne.

          Attention toutefois à tenir compte de la remarque de foo, en cas de changement de cellule...
          0