comment créer un ascenseur sur plusieurs lignes ?

djaouseph

XLDnaute Nouveau
bonjour à tous.

J'aurai voulu savoir s'il est possible de créer un ascenseur permettant de regrouper plusieurs lignes. Par exemple, regrouper les lignes 1 à 15 sur seulement quelques lignes trois ou quatres lignes avec un ascenseur en bout de ligne pour faire défiler ces lignes là...
A noter que le fractionnement de l'écran ne me permet de résoudre mon "problème" car j'aimerai pouvoir avoir cet ascenseur en milieu de page. Par ailleurs, ne connaissant pas le VBA, à éviter si possible !

Merci pour vos réponses à ma demande très.... précise !
 

hoerwind

XLDnaute Barbatruc
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonjour et bienvenue sur le forum,

A ma connaissance ce n'est pas réalisable, du moins je ne l'ai jamais vu.

Mais est-ce que le menu Données - Grouper et créer un plan ne serait pas déjà une approche valable au problème que tu poses ?
 

djaouseph

XLDnaute Nouveau
Re : comment créer un ascenseur sur plusieurs lignes ?

oups, je n'avais pas vu la deuxième partie de la réponse... je viens d'essyer, et c'est effectivement une première étape. cependant, ce n'est pas tout à fait ce que je cherche d'autant plus qu'avait cette fonction, lorsque l'on clique sur le "+", les lignes qui était auparavant masquées (et qui l'était déjà avant d'utiliser la fonction de plan) devienne visible...

mais merci pour la réponse ! J'ai appris une nouvelle chose sur excel, et rien que pour ca, je suis content !

à+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonjour djaouseph,

Un essai 'pour le fun' avec une scrollbar (avec un peu de vba)

La zone des données à afficher est en B16 : R249. C'est une zone masquée. La ligne d'en-têtes est en ligne 15.

La zone défilante est en B251 : R255 (on affiche 5 lignes à la fois). La ligne d'en-têtes est en ligne 250.

La scrollbar a pour propriété: Max = 16, Min = 245 (249-5+1), Smallchange = 1, LargeChange =10

Le code est dans le module de la feuille 'Feuil1'

La colonne A est figée - Le mode création du menu développeur doit être désactivé pour faire fonctionner la scrollbar

nb: un petit inconvénient subsiste. Il faut quelquefois cliquer deux fois sur la scrollbar pour la faire défiler!

Deux fichiers: 1) 2003 en .xls (fichier .zip) 2) 2010 en .xlsm
 

Pièces jointes

  • Creer un ascenseur sur plusieurs lignes.xlsm
    59.5 KB · Affichages: 371
  • Creer un ascenseur sur plusieurs lignes.zip
    44.1 KB · Affichages: 185
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : comment créer un ascenseur sur plusieurs lignes ?

(re)Bonjour djaouseph,

Un autre essai sans code VBA avec un nom dynamique et une formule matricielle en zone défilante.

La zone des données à afficher est en B16 : R249. C'est une zone masquée. La ligne d'en-têtes est en ligne 15.

La zone défilante est en B251 : R255 (on affiche 5 lignes à la fois). La ligne d'en-têtes est en ligne 250.

La scrollbar a pour propriété: Max = 16, Min = 245 (249-5+1), Smallchange = 1, LargeChange =10, LinkedCell = A250

Pas de code VBA mais le formatage de la zone défilante est constant et ne suit pas celui de la zone affichée de données.

Un nom dynamique a été défini : maZone =DECALER(Feuil1!$B$16:$R$20;Feuil1!$A$250-16;0)

La formule dans la zone défilante est une formule matricielle.

La colonne A est figée - Le mode création du menu développeur doit être désactivé pour faire fonctionner la scrollbar

EDIT: on peut remplacer la formule matricielle dans la zone B251:R255 (=maZone) par la formule matricielle:
=SI(maZone="";"";maZone) ==> Les cellules vides ne la zone de données ne s'afficheront plus comme des 0 mais bien comme des cellules vides.

Edit : on peut aussi le faire sans formule matricielle et sans nom dynamique. Pour cela, coller la formule suivante dans la zone B251:R255 :
=SI(DECALER($B$16;$A$250-16+LIGNE()-251;COLONNE()-2)="";"";DECALER($B$16;$A$250-16+LIGNE()-251;COLONNE()-2))
 

Pièces jointes

  • Creer un ascenseur sur plusieurs lignes (sans VBA).zip
    42.1 KB · Affichages: 87
  • Creer un ascenseur sur plusieurs lignes (sans VBA).xlsx
    50.9 KB · Affichages: 224
Dernière édition:

Apyl

XLDnaute Nouveau
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonjour ma pomme,

Je viens de tomber sur ton explication qui me convient parfaitement pour mes besoins (mais où vas tu chercher tout ça vain dieu ??)

En revanche, en transposant chez moi, et bah ça fonctionne pas ! je dois louper une étape ou il y a un détail qui m'échappe. Le problème que j'ai de toute façon c'est les valeurs mini et max du scollbar qu'excel refuse de me prendre tels quels car la valeur mini que tu définis de ton côté est supérieure à la valeur max.

Peux tu m'aider ou au vu du dernier post de cette discussion, on ne peut pas revenir dessus ?!

Merci encore

Apyl
 

Pièces jointes

  • Classeur1.xls
    19.5 KB · Affichages: 106
  • Classeur1.xls
    19.5 KB · Affichages: 114
  • Classeur1.xls
    19.5 KB · Affichages: 120

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonsoir Apyl,

Quelques explications:

Pour une présentation sans ambiguité pour l'utilisateur, il vaudrait mieux que les champs de la zone défilante correspondent colonne à colonne aux champs de la zone de données. Pour cela, on peut faire 2 manip:
  1. utiliser un format qui va décaler le contenu des cellules de la colonne A de la zone défilante de quelques espaces vers la droite (sans modifier le contenu des cellules bien sûr!). Le format utilisé pour les cellules de la colonne A de la zone défilante sera:
    Code:
    "      "Standard;"      "Standard;"      "Standard;"      "@
    (le premier terme est utilisé pour un nombre positif; le second terme est utilisé pour un nombre négatif; le troisième terme est utilisé pour un nombre égal à zéro; le quatrième terme est utilisé pour du texte)
    .
  2. Rejeter la cellule liée à l'ascenseur ailleurs que dans la colonne A. J'ai choisi la cellule Z1.


Définition de la zone "zonenot":
Vous désirez afficher 3 lignes à partir de la ligne 2. On va donc considérer la zone de 3 lignes commençant à la ligne 2 et de hauteur 3 lignes (Feuil1!$A$2:$G$4). C'est cette zone qu'on va décaler en fonction de l'ascenseur (dont la valeur est en Z1)
ce qui donne: zonenot -> =DECALER(Feuil1!$A$2:$G$4;Feuil1!$Z$1;0)


Pour introduire la formule matricielle dans la zone défilante:
  • Il faut sélectionner toutes les cellulles de la plage A10 à G12
  • Tout en gardant cette plage sélectionnée, se placer dans la zone d'édition des formules avec la souris ou bien en tapant sur la touche de fonction F2.
  • Introduire la formule suivante dans la barre de formule:
    Code:
    =SI(zonenot="";"";zonenot)
  • Validez la formule en tapant CTRL+MAJ+ENTREE (en veillant bien que la plage A10:G12 soit bien toujours sélectionnée)


Pour les limites de l'ascenseur:
Limite inférieure = 0
Limite supérieure = N° dernière ligne à afficher - nombre de lignes à afficher + 1 - N° première ligne à afficher = 8-3+1-2=4
 

Pièces jointes

  • Apyl - Ascenseur v1.xls
    31 KB · Affichages: 122
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonjour Apyl,

Une version v2 qui implante la zone défilante sur la feuille "Feuil2".
Cinq noms dynamiques ont été créés. Voir leur définition en colonnes Z:AA.
 

Pièces jointes

  • Apyl - Ascenseur v2.xls
    29 KB · Affichages: 153
Dernière édition:

Apyl

XLDnaute Nouveau
Re : comment créer un ascenseur sur plusieurs lignes ?

Bonjour MaPomme,

Et ben franchement, t'es un furieux !! Le problème c'est que j'y comprends rien !! En fait ca me dépasse complètement ! J'ai bien vu la zone "explicative" en Z mais je ne vois même pas pourquoi tu utilises d'autres noms dymamiques que zoneaafficher ?! A quoi te servent-ils ? Ta démonstration est encore plus compliquée que celle précédemment fournie... du coup, je suis complètement largué !

Et forcément, tu l'auras bien compris... ce n'est pas mon tableau final qui est bien plus compliqué ! Ca va finir que je vais terminer toutes mes préparations dessus et je te le donnerai pour cette partie là mais c'est moche, j'aurais préféré comprendre !

Dis moi le cas échéant ce que tu préfères, : m'expliquer ou que je te file le "vrai" fichier. Sachant par contre dans ce cas là que ce sera en message privé. On peut non ?

Merci encore pour ta rapidité et tes compétences !! bravo !! franchement bluffé !!

Apyl
 

Apyl

XLDnaute Nouveau
Re : comment créer un ascenseur sur plusieurs lignes ?

Bon... alors je reviens sur mon 1er message... pour avouer que je n'es vu que ton dernier !! la v2. Trop compliquée ! je reste sur le fait que je ne comprends pas pourquoi tu utilises 5 noms dynamiques, etc.

La V1 me va bien. le décalage de la colonne nom est le petit plus mais je ne sais même pas si je vais l'utiliser ; préférant presque (comme il est de coutume d'ailleurs) d'utiliser la barre en fin de tableau ! à moins que ce soit cela qui conditionne le fait que le tout fonctionne ?! et dans ce cas, je pouvais toujours essayer.

Je fais des tentatives aujourd'hui et je reviens avant la fin de journée pour rendre compte de mes tentatives.

(Et franchement... encore bravo et merci... C'est ton métier non ?!)

Apyl
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 009
dernier inscrit
dede972