Je crée une application de rapport dans Excel. Sur certaines feuilles, j'ai plusieurs lignes d'en-tête que je veux garder visibles à tout moment. Donc, naturellement, j'utilise la fonction Freeze Panes d'Excel pour figer ces lignes en haut.
Le problème est que si l'utilisateur fait défiler vers le bas ou trouve un rapport qui a déjà été fait défiler vers le bas, il n'est pas immédiatement évident visuellement qu'il y a plus de données se cachant au-dessus, à moins que l'utilisateur ne regarde la barre de défilement ou les numéros de ligne.
Connaissez-vous de bons moyens d'indiquer visuellement à l'utilisateur qu'il y a plus de données cachées derrière l'en-tête?
Je suis ouvert aux idées qui peuvent nécessiter un script pour être implémentées. Je suis plus intéressé par la collecte d'idées de design; Je peux comprendre comment les mettre en œuvre par la suite.
Voici ce que j'ai fini par mettre en œuvre, inspiré par certaines des excellentes idées proposées ici par d'autres:
Au-dessous des rangées d'en-tête, j'ai deux rangées à mi-hauteur, avec le volet figé entre elles, de sorte que celui du haut est toujours là, et celui du bas disparaît lorsque vous faites défiler. Dans celui du haut, j'ai une ligne de "/ \/\/\" enjambant la ligne, en bleu, et dimensionnée pour tenir dans la demi-hauteur. Dans celui du bas, j'ai une ligne similaire de "\/\/\ /". Le résultat est que lorsqu'il n'est pas déroulé, il y a une ligne de losanges bleus entre l'en-tête et les données, et lorsqu'il est déroulé, il y a une ligne de chevrons bleus vers le haut.
Votre problème principal ici n'est pas vraiment "comment visualiser que le volet gelé est gelé".
Cette partie est facile. Ajoutez un fond gris et une bordure en gras, et vous êtes à mi-chemin :-)
Faites en sorte qu'il soit différent et titré.
Votre vraie question est: "Comment visualisez-vous qu'il y a plus de données au-dessus de la ligne du haut?"
Et la question ne s'applique pas uniquement à la ligne supérieure figée d'Excel. Cette question est également pertinente dans d'autres situations.
(Avez-vous déjà suivi un lien et après un certain temps vous vous rendez compte que vous êtes dans la même page Web qu'avant, juste dans une autre section #Name. Essayez ceci: http://en.wikipedia.org/ wiki/Microsoft_Excel # File_formats . Comment savez-vous que vous êtes au milieu de la page?)
La meilleure meilleure façon de visualiser qu'il y a quelque chose au-dessus, est de montrer un peu de ce contenu. Pour que l'utilisateur ne pense pas que la chose la plus importante soit le début du contenu.
contre
Malheureusement, Excel ne fait défiler que par lignes entières, il est donc impossible d'afficher la moitié du contenu de la ligne ci-dessus (ou je me trompe?). La seule solution (vraiment boiteuse) à laquelle je peux penser est de fusionner deux cellules verticalement. De cette façon, vous pourriez afficher la moitié du contenu de la ligne ci-dessus - ne laissant aucun doute à l'utilisateur.
L'autre façon de visualiser qu'il y a plus au-dessus est d'utiliser la loi de Gestalt sur la fermeture et de donner à l'utilisateur la sensation d'une zone non fermée au-dessus de la zone visible.
->
(Désolé pour le mauvais attrait visuel. Veuillez mettre un peu plus de travail dans le look.) :-)
J'ajouterais également que cela dépend beaucoup du contenu que vous affichez et de la tâche que l'utilisateur effectue. Si l'utilisateur regarde une liste d'articles classés par ordre numérique ou des noms triés par ordre alphabétique, il le fera sait qu'il trouvera plus de noms ci-dessus - surtout s'il le recherche. S'il est pas à la recherche, at-il besoin de savoir que c'est plus de contenu ci-dessus?
Où est le client n ° 3 et où est Arthur ???
et
La solution se compose de deux parties:
Tout d'abord, la manipulation dynamique dans Excel se fait à l'aide de VBA et vous permet de manipuler facilement les objets sur les feuilles de calcul. En plaçant un élément image sur la feuille de calcul et en attachant du code à l'événement click, vous pouvez représenter visuellement un changement dans l'état de la feuille et une action implicite. L'image peut être une flèche vers le haut ...
Exemple de code:
Private Sub ImgArrowUp_Click()
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
ActiveSheet.Shapes("ImgArrowUp").Visible = False
End Sub
Ce code fera défiler vers le haut et masquera la flèche.
La deuxième partie est un peu délicate - vous avez besoin de code pour afficher/masquer la flèche sur la feuille de calcul en fonction de l'emplacement de l'utilisateur:
ActiveSheet.Shapes("ImgArrowUp").Visible = True/False
mais il n'y a pas d'événements de défilement dans Excel, donc si vous voulez l'implémenter, vous aurez besoin d'accéder à l'API Windows. Vous pouvez utiliser l'implémentation décrite ici: Détection du défilement dans une fenêtre de feuille de calcul
Je ne sais pas si vous connaissez les feuilles de calcul Google Docs, mais elles ont par défaut une barre grise d'environ 5 px ou si haute pour indiquer que la ligne au-dessus est verrouillée sur la page. cela me semble assez intuitif.
Indiquez le nombre de lignes masquées dans l'en-tête de ligne. Plus vous faites défiler vers le haut ou vers le bas, le nombre change pour montrer le nombre changeant de lignes cachées. Lorsque vous faites défiler vers le haut, l'indicateur disparaît (comme ce serait zéro). C'est l'indicateur le moins invasif visuellement auquel je puisse penser pour la zone de contenu principale actuelle.
La bonne chose ici est que si vous avez également un filtre en place et que certaines lignes sont réellement cachées à cause d'un filtre plutôt que parce que vous faites défiler vers le bas, alors l'indicateur peut montrer le vrai nombre de lignes masquées.
Juste pour jeter une idée sur la table (jeu de mots voulu), vous pouvez essayer quelque chose comme le suivant qui utilise des points de suspension dans chaque colonne et toutes les autres lignes (en fonction de la largeur des lignes/colonnes) et qui se trouve dans un séparateur plus accentué entre les volets.
Si le volet défile jusqu'en haut ou à gauche, les ellipses pertinentes sont masquées, c'est-à-dire qu'elles indiquent uniquement le contenu masqué.
Si vous cliquez sur le séparateur horizontal, les volets s'alignent vers le haut (c'est-à-dire qu'ils défilent complètement vers le haut et les ellipses horizontales se cachent) et de même si vous cliquez sur le séparateur vertical, le volet s'accroche à gauche.
Il s'agit du comportement par défaut d'Excel. Je ne pense pas qu'il soit possible de "programmer" toutes les situations possibles. Vous pouvez créer des liens qui mènent l'utilisateur vers une certaine cellule d'une certaine feuille. De cette façon, même si l'utilisateur ne fait pas défiler, vous pouvez pointer l'utilisateur dans la bonne direction. Si vous nommez les liens 'up' ou quelque chose comme ça, alors les gens l'obtiendront probablement.