Informations flottantes dans une ligne figée (Microsoft Excel)
Bev a une feuille de calcul avec deux lignes d’en-tête qui sont figées et une colonne qui est figée. Elle peut ensuite faire défiler la page en ajoutant des données semaine par semaine. Les noms et les sous-totaux sont fixés sur la gauche, les dates de la semaine en haut. Surtout, dans la première ligne figée, Bev a un joli titre de fantaisie décrivant le classeur. Elle cherche un moyen de faire «flotter» son titre (celui de la première ligne) de sorte que lorsqu’elle fait défiler la page, le titre ne disparaisse pas du bord de la feuille de calcul visible.
Pour ce faire, le moyen le plus simple consiste à vous assurer que le titre se trouve dans la cellule A1.
Puisque vous avez une colonne et deux lignes gelées, lorsque vous faites défiler vers la droite, la cellule A1, contenant le titre, sera toujours visible à l’écran. (Cela ne fonctionne de manière satisfaisante que si le titre entier rentre dans la cellule A1, sans « déborder » dans la cellule B1 ou au-delà.)
Si vous voulez quelque chose d’un peu plus sophistiqué avec votre titre, vous devez travailler un peu avec les zones de texte et les macros. Si vous placez le titre dans une zone de texte positionnée sur la première ligne, vous pouvez utiliser certaines macros pour vous assurer que la zone de texte est toujours centrée sur l’écran de cette ligne.
Supposons, pour les besoins de cet exemple, que la zone de texte contenant le titre s’appelle «TitleTextBox». Lorsque vous faites défiler vers la gauche et la droite dans la feuille de calcul, une macro peut automatiquement vérifier que le bord gauche de la zone de texte est toujours égal au bord gauche de la zone d’écran visible. Le code suivant doit être ajouté au code de la feuille de calcul pour la feuille de calcul contenant la zone de texte:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Me.Shapes("TitleTextBox").Left = ActiveWindow.VisibleRange.Left End Sub
Cette macro, car elle fait partie du code de la feuille de calcul, s’exécutera chaque fois que la sélection est modifiée dans la feuille de calcul. Ainsi, lorsque vous utilisez les touches fléchées pour vous déplacer à gauche ou à droite, utilisez les touches de tabulation ou sélectionnez une cellule avec la souris, la macro s’exécute et s’assure que les bords gauche de la zone de texte et la zone visible correspondent toujours.
Lorsque cette macro ne démarre pas, c’est lorsque vous faites défiler vers la gauche et la droite en utilisant la barre de défilement horizontale en bas de l’écran. Il n’y a pas d ‘ »événement de défilement » qui se déclenche automatiquement lorsque les barres de défilement sont utilisées. Tant qu’une sélection n’est pas effectuée quelque part dans la nouvelle plage visible, déclenchant ainsi l’événement SelectionChange, l’emplacement de la zone de texte ne sera pas déplacé.
La seule solution de contournement à cette limitation consiste à utiliser les fonctionnalités de minuterie de Visual Basic pour mettre à jour régulièrement la zone de texte. Le code suivant le fait toutes les secondes, mais vous pouvez l’ajuster pour qu’il s’exécute moins souvent, si vous le souhaitez.
Ce code est ajouté à un module VBA normal:
Sub UpdateTB() If ActiveSheet.Name = "Sheet1" Then ActiveSheet.Shapes("TitleTextBox").Left = _ ActiveWindow.VisibleRange.Left End If Application.OnTime Now + TimeSerial(0, 0, 1), "UpdateTB" End Sub
Et cela est ajouté à l’objet classeur pour démarrer le minuteur lorsque le classeur est ouvert pour la première fois:
Private Sub Workbook_Open() UpdateTB End Sub
Si vous utilisez l’approche basée sur la minuterie pour positionner la zone de texte, vous n’aurez pas besoin d’utiliser celle qui est liée à l’événement SelectionChange. La version de la minuterie ajuste simplement le titre après chaque intervalle.
Il y a un «inconvénient» supplémentaire à l’une ou l’autre des techniques basées sur les macros en plus de la lenteur introduite par le code en cours d’exécution: chaque fois que le code s’exécute, il efface la «pile d’annulation». Cela signifie que vous ne pourrez pas «annuler» les modifications que vous apportez au classeur si vous en avez besoin.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10260) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Floating_Information_in_a_Frozen_Row [Information flottante dans une ligne gelée]
.