3 votes

Excel 2010 - Congeler une colonne pour le défilement horizontal et vertical

Je suis familier avec la fonctionnalité de base de gel de volets. Si je gèle la première colonne par Geler volet > Geler première colonne, cela fonctionne contre un défilement horizontal, mais pas un défilement vertical.

J'aimerais que la colonne reste gelée peu importe comment je fais défiler. Autrement dit, ce qui se trouve dans la première colonne devrait toujours rester visible, peu importe comment je fais défiler le reste de la fenêtre. Est-ce possible ?

Édition

Pour être clair, les volets gelés normaux ne fonctionneront pas car je ne veux pas que des lignes soient verrouillées. Donc, lorsque je fais défiler verticalement, je veux que la première colonne ne fasse pas défiler, mais que toutes les lignes (en dehors de toutes les cellules dans la première colonne) fassent défiler normalement.

4voto

chuff Points 3434

Voici ce que vous pouvez faire.

  • Commencez par démaximiser les feuilles de calcul dans votre classeur en cliquant gauche sur l'icône des fenêtres interconnectées (carrés) située sous l'icône rouge de fermeture dans le coin supérieur droit de la fenêtre Excel.
  • Créez une deuxième fenêtre pour votre classeur en cliquant droit sur la bordure supérieure de votre feuille de calcul (au-dessus des identifiants des lignes A, B, etc.) -
  • Choisissez Affichage / Organiser tout avec le bouton radio "Vertical" sélectionné et "Fenêtres du classeur actif" cochés.
  • Ajustez les limites verticales des deux fenêtres de sorte que la première ne montre que les colonnes "résumé" qui vous intéressent, et que la seconde remplisse le reste de l'espace disponible.
  • Dans la fenêtre de droite, insérez une nouvelle colonne à droite des colonnes affichées dans la fenêtre de gauche, puis faites défiler la feuille de droite pour que cette colonne soit la première visible dans la fenêtre de droite. (La nouvelle colonne ne sera pas visible dans la fenêtre de gauche.)
  • Réduisez la largeur de la colonne pour créer une marge étroite, puis figez-la en place (je suppose que vous figerez également la ligne supérieure).

Au final, le résultat ressemblera à ceci:

description de l'image à insérer

Puisque le défilement des deux fenêtres n'est pas synchronisé, vous verrez les chiffres de résumé qui vous intéressent dans la fenêtre de gauche, et vous pourrez faire défiler le reste de la feuille dans la fenêtre de droite sans problème.

2voto

Peter Albert Points 2910

Sur la base de la réponse de chuff, j'ai écrit la macro suivante. Elle fait ce que chuff décrit - et en plus elle nomme les deux fenêtres "Tableau de bord" et "Données" et masque tous les éléments (barres de défilement, onglets de feuille de calcul, en-tête de ligne/colonne) du tableau de bord.

Pour exécuter cette macro, suivez les étapes suivantes :

  • Copiez le code ci-dessous
  • Dans Excel, accédez à l'éditeur Visual Basic (Alt-F11)
  • Insérez un nouveau module en cliquant avec le bouton droit sur le projet dans l'arborescence de gauche et en sélectionnant Insérer->Module (si vous souhaitez appliquer cette technique à d'autres classeurs, placez-la dans votre classeur de macros personnel)
  • Collez le code dans le nouveau module
  • Si vous le souhaitez, modifiez le nombre de colonnes ou les titres des deux fenêtres en modifiant les premières lignes du code commençant par Const
  • Exécutez le code - soit en cliquant sur la première procédure et en appuyant sur F5 - soit en retournant sur Excel (Alt-F11) et en appuyant sur Alt-F8. Sélectionnez la macro ici et cliquez sur Exécuter. (Notez que vous pouvez également lui attribuer un raccourci dans cette boîte de dialogue).

Voici la macro :

Sub SeparerFenêtres()
    Const cIntColonnePanne As Integer = 2
    Const cStrNomPanne As String = "Tableau de bord"
    Const cStrNomPrincipal As String = "Données"

    Dim i As Integer
    Dim wndPrincipal As Window, wndPanne As Window
    Dim dblLargeurAncienne As Double, dblLargeurPanne As Double

    Set wndPrincipal = ActiveWindow

    If ThisWorkbook.Windows.Count > 1 Then
        If MsgBox("Plusieurs fenêtres pour le classeur actuel sont déjà affichées. Voulez-vous les fermer/réorganiser ?", vbYesNo) = vbYes Then
            For i = 2 To ThisWorkbook.Windows.Count
                ThisWorkbook.Windows(1).Close
            Next
        Else
            Exit Sub
        End If
    End If

    Set wndPrincipal = ActiveWindow
    wndPrincipal.WindowState = xlNormal
    Set wndPanne = wndPrincipal.NewWindow

    ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical

    dblLargeurAncienne = wndPanne.Width
    dblLargeurPanne = Range("A1").Resize(, cIntColonnePanne).Width

    ConfigurerFenetre wnd:=wndPanne, blnAfficherElements:=False, _
        strTitre:=cStrNomPanne, dblLargeur:=dblLargeurPanne, _
        dblGauche:=1

    ConfigurerFenetre wnd:=wndPrincipal, blnAfficherElements:=True, _
        strTitre:=cStrNomPrincipal, _
        dblLargeur:=wndPrincipal.Width + (dblLargeurAncienne - dblLargeurPanne), _
        dblGauche:=dblLargeurPanne

    With wndPrincipal
        .ScrollColumn = cIntColonnePanne + 1
        .Activate
        .ActiveSheet.Range("A1").Offset(, cIntColonnePanne + 1).Select
        If .FreezePanes Then .FreezePanes = False
        .FreezePanes = True
    End With

End Sub

Private Sub ConfigurerFenetre(wnd As Window, _
    blnAfficherElements As Boolean, _
    strTitre As String, _
    dblLargeur As Double, _
    dblGauche As Double)

    With wnd
        .Width = dblLargeur
        .Left = dblGauche
        .DisplayHeadings = blnAfficherElements
        .DisplayHorizontalScrollBar = blnAfficherElements
        .DisplayVerticalScrollBar = blnAfficherElements
        .DisplayWorkbookTabs = blnAfficherElements
        .Caption = strTitre
    End With
End Sub

1voto

Peter Albert Points 2910

Ceci est possible:

Il suffit de sélectionner la cellule B2 et de cliquer sur Figer les volets:

entrez la description de l'image ici

Cela gardera tout ce qui se trouve à gauche et en haut de la cellule visible, c'est-à-dire la ligne 1 et la colonne A!

Si vous souhaitez uniquement figer la colonne de gauche, sélectionnez simplement la cellule A2 à la place - ou cliquez sur Figer la première colonne.

0voto

AdamV Points 5934

(Je sais que cet article date de longtemps mais peu importe la coïncidence qui m'a mené ici signifie qu'il mérite toujours une réponse).

Au lieu de jouer avec les fenêtres divisées, il semble que la fonction qui atteint le mieux l'objectif soit d'utiliser une "fenêtre de surveillance".

Sur le ruban Formules, dans le groupe Audit des formules, cliquez sur Fenêtre de surveillance.

Dans la fenêtre qui apparaît, vous pouvez ajouter plusieurs cellules à surveiller les valeurs. Si vous sélectionnez une plage, cela inclut toutes les cellules de la plage séparément. Vous pouvez inclure des cellules de différentes feuilles, pour éviter de passer constamment d'une à l'autre également.

La fenêtre de surveillance est une vraie fenêtre entièrement fonctionnelle* - vous pouvez la redimensionner et la faire glisser en dehors des limites de la fenêtre Excel, par exemple sur un deuxième écran, ou vous pouvez la "déposer" sur le côté de l'écran Excel. Elle disparaît si la fenêtre Excel principale est cachée ou réduite, ce qui est logique. Si vous fermez la fenêtre de surveillance, elle se souvient de ce que vous surveilliez, donc ces mêmes cellules sont de nouveau "surveillées" lorsque vous ouvrez à nouveau la fenêtre, pour le même classeur.

*il ne semble pas répondre à la fonction "snap" de Windows cependant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X