XL 2016 VBA - Exact Visible Range

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour,

VBA nous donne un Window.VisibleRange qui inclut les dernières colonne et ligne pas forcément complètement visibles.
C'est souvent handicapant quand on veut avoir un Window.ExactVisibleRange qui exclut les parties non visibles des dernières colonne et ligne.

J'ai dû faire un code sans trop d'API pour tenter de définir cet ExactVisibleRange mais hélas, j'ai aussi dû utiliser des constantes qui semblent valides chez moi. Mais le sont-elles chez vous ?
VB:
Const VerticalScrollBarBordersPixels As Long = 2 * 2.5    'Borders around the Vertical Scroll Bar
Const HorizontalScrollBarBordersPixels As Long = 2 * 4    'Borders around the Horizontal Scroll Bar
Const StatusBarHeightPixels = 26

Merci par avance de tester ce code pour vérifier qu'en toutes configurations de fenêtre (maximisée et réduite), la Shape Rectangle s'affiche bien aux limites basses de la partie visible.
Si ce n'est pas le cas, un petit screenshot et des infos sur la version Window et Office (versions et bits)

1732747330635.png


Fichier: voir plus loin
 
Dernière édition:
Oui le freezpanes bouffe 1 pixel qu'il faut retirer avec le RangeFromPoint+.
Ton RangeFromPoint fonctionne alors puisqu'il lui manque 1 pixel en H et en V à condition d'avoir 4 panes. Sinon il faut tester.
Pas avec le Usable qui retourne la bonne valeur !
Le split prend aussi des pixels.
 
Dernière édition:
En cas de Split ou FreezePanes ça devient plus complexe avec un RangeFromPoint car il faut déterminer dans quel Pane se trouve la dernière cellule et faire un décalage d'1 pixel:
- en V et en H si Pane 4
- en V si Pane 2 si 2 Panes et splitrow > 0
en H si Pane 2 si 2 panes et splitcolumn > 0
Je crois que je vais rester uniquement sur le Usable qui donne la bonne valeur, qu'on soit en Split, FreezPanes ou non.
 
Dernière édition:
les bonnes valeurs sont
les usables +les NUIScrollbar-bien evidement le header qui ont la classe XLCTL
bien entendu pour le left sans le header
si je fait avec ces données des fenêtre de ma toute nouvelle fonction qui va me chercher les rectangle
voila si j'utilise les donnée rectangle des fenêtre ad hoc retournée par ma petite sub
demo1.gif


Indiscutable 😉
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre
Retour