VBA Excel

Résolu/Fermé
Anne - 17 déc. 2013 à 09:09
 foo - 17 déc. 2013 à 10:59
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

A voir également:

4 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 17/12/2013 à 09:35
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
17 déc. 2013 à 09:33
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
Bonjour,

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

Merci encore!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
17 déc. 2013 à 09:27
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
17 déc. 2013 à 10:22
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
17 déc. 2013 à 10:41
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
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
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