XL 2016 VBA - Réduire la largeur de la grille Excel

  • 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,

DataSnipper est un outil commercial ajoutant à Excel des fonctionnalités diverses.
Parmi ces fonctionnalités, la possibilité de visualiser des documents PDF directement dans Excel avec cette particularité (voir image ci-dessous) que la fenêtre Excel est divisée en 2 verticalement. La partie gauche contient la grille Excel, la partie droite contient probablement un Control ActiveX visualisateur PDF, je ne sais pas lequel ? Acrobat ? PDF-XChange Viewer ? Autre ?

La question est: comment est-il possible dans une fenêtre Excel de réduire la largeur de la grille Excel et ses ascenseurs comme le fait ce logiciel ?

1758617247578.png
 
Solution
La solution avec le XML Source Pane + UserForm a l'air complexe à mettre au point, sensible aux différentes configurations et sans doute cela ne vaut pas le coup de continuer. Toutefois si @patricktoulon donnait un fichier opérationnel je l'ajouterais dans la solution bien évidemment.

Pour ce qui me concerne, je suis satisfait de la solution sans volet qui jusque là n'a intéressé personne (ce que je comprends vu les essais en cours sur le volet) que je réplique ici comme solution.
La largeur de la fenêtre du document naturellement ajustable ajuste aussi la fenêtre XLDESK7 et un clic unique permet de basculer entre Excel et le document.
Même si elle n'est sans doute pas parfaite ni à l'épreuve des balles, chez moi ça fonctionne...
en fait apres test il nous faut 2 userform et seulement leur events mose move
un ou je vais appliquer une transparence total sur une partie et l'autre une translucidité zero (effet pareil que transparent) mais on garde l'event même sur la partie que l'on ne vois plus
afficher ensemble ca donne ça
demo4.gif

et même dans votre cas on pourrait seulement garder le 2 qui est translucide zero et le déplacer de droite a gauche ou le faire apparaitre seulement quand excel7 perd le focus tout simplement
 
ben c'est ça en fait qui se produit : ça pique pas les yeux mais ça les dérange.
Par contre il y a un autre truc que j'ai remarqué et je sais pas si c'est normal : Quand tu prends le document word par sa barre de titre, tu peux ballader le document partout sur l'écran.
alors dans ce cas la il y a une erreur de cible pour le dock word n'est pas docké dans XLDESK
 
Quand tu prends le document word par sa barre de titre, tu peux ballader le document partout sur l'écran.
C'est normal car lorque Word est la fenêtre active elle est détachée de la parentalité Excel pour être indépendante, c'est à dire rattachée à la DeskTop Window. Pourquoi ? Parce qu'il est impossible d'avoir Word qui fonctionne correctement (Fichier et autres) s'il est Child d'Excel et à mon avis de quoi que ce soit d'autre.

Alors qu'on puisse balader la fenêtre, oui, c'est possible et l'empêcher, c'est à dire la remettre en place, c'est aussi possible. Je verrai.
Pour l'instant j'ai un souci avec Word en resize gauche que je ne m'explique pas en sleep 5 et pas en sleep 50, c'est un exercice difficile.
 
Dernière édition:
@Dudu2 , @nullosse alors j'ai découvert un truc intéressant(qui pourrait vous servir)
comme vous le savez je mettait une petite fenêtre de classe static sur les bouton fichier pour (Excel et Word)
ok ca m'empêchait de déployer le backstage que ce soit pour l'un ou pour l'autre
et je viens de découvrir que si la fenêtre et non pas de classe static mais de classe "Button" et qu'en plus je le met en transparent
et bien pour excel ca change pas grand chose on peut pas déployer le backstage c'est tout

mais alors pour word une chose extraordinaire se produit
les classes button ne peuvent pas perdre leur consistance par contre si la fenêtre est placé dans le bon child(une des child de word) et bien figurez vous que le bouton fichier fonctionne , deploie le backstage en parent 0( donc desktop) et quand je le referme word est toujours docké
du coup ca donne l'effet que rien n'est masquer et que finalement tout marche normalement
avec mon petit event de substitution dans le userform lui même je peut aussi fermer word par la croix sans problème (le volet est juste un peu plus long a fermer
ben du coup a part le switch focus je n'ai plus de problème je peux donc laisser la fenêtre word entière

ça alors il fallait y penser à ça une fenêtre ne peut pas être destroy ou fermée par sendmessage si elle contient une fenêtre de class "Button"
comme je ferme maintenant soit par la croix soit par le bouton du rubant qui fait simplement un ".Quit" sur l'object word application je n'ai plus de soucis avec ça et pourtant je reste dans le volet xmlsource qui a la moindre fenêtre qui s'ouvre dans excel , il se se barre
punaise de punaise il fallait y penser a celle là

je vais lancer des duel avec toute les I A que j'utilise pour qu'il me trouvent l'explicationpar ce que là c'est fort quand même
 
Dernière édition:
voici l'explication de claude

voici l'explication du chat peteur

la réponse de copilot

je vous donne pas les 3 autres


bon en gros il ont tous dit que la constitution de la fenêtre word faisait que le click était quand même intercepté mais que le bouton fichier fichier recevais quand même le message window peut être même dégradé
ce qui fait que le backstage s'ouvre mais word n'a pas les informations complète pour purger et réinitialiser ses fenêtre du coup il ne se fermait pas et pour excel c'est la même punition
selon les 6 IA que j'ai consulté c'est une forme de hack sur des windows que je viens de découvrir par hazard en plus

pour citer l'un d'entre eux
c'est une plaque de verre devant un bouton tactile
il capte la chaleur mais plus faiblement ou partiellement

moi très content de la découverte
 
Dernière édition:
re
C'est normal car lorque Word est la fenêtre active elle est détachée de la parentalité Excel pour être indépendante, c'est à dire rattachée à la DeskTop Window. Pourquoi ? Parce qu'il est impossible d'avoir Word qui fonctionne correctement (Fichier et autres) s'il est Child d'Excel et à mon avis de quoi que ce soit d'autre.
entre nous je suis pas sur de ça je testerais demain sur un fichier vierge
 
Bonjour,
Une version améliorée qui fonctionne chez moi.
Pas simple à gérer Word et ses changements de Parent et surtout les basculements Document -> Excel qui selon le cas font clignoter Excel sur la barre des tâches au lieu de l'activer (très énervant !). Je ne suis pas intervenu dans le déplacement de la fenêtre Word, si l'idée en prend à l'utilisateur, le prochain survol d'Excel la repositionne dans le cadre.

Le fichier est en Post #657 (solution).

Edit:
Et pour ceux qui n'aimeraient pas le basculement automatique Document <-> Excel par survol du curseur et qui préfèrent faire des clics et des clacs, le fichier joint couvre cette option.
 

Pièces jointes

Dernière édition:
Et pour ceux qui n'aimeraient pas le basculement automatique Document <-> Excel par survol du curseur et qui préfèrent faire des clics et des clacs, le fichier joint couvre cette option.
Salut Dudu2,
moi y a pas photo : je préfère cette version qui n'entraîne pas d'effets visuels indésirables. Et pour les clics et les clacs , c'est le fonctionnement naturel de windows. Pour avoir le focus dans une fenêtre il faut cliquer dedans (manuellement et en plus on choisit où l'on clique dans la fenêtre).
Nullosse
 
Concernant l'effet visuel, il n'y a pas de différence. C'est le même quand on passe de Word à Excel puisque le principe est identique, on change le Parent de Word et dans ce sens ça provoque une légère saute d'affichage.
ben chez moi c'est carrément comme un flash.
En ce qui concerne la prise de focus automatique , L'I.A m'a donné une indication :
Depuis Windows 10 et 11, Microsoft limite un peu le "vol de focus" pour éviter les comportements intrusifs.
👉 Si SetForegroundWindow ne marche pas toujours, tu peux contourner en :


  • simulant une touche Alt (avec keybd_event) avant d’appeler SetForegroundWindow,
  • ou en envoyant une touche à la fenêtre cible (SendMessage, PostMessage), selon le besoin.
 
C'est vrai que le SetForegroundWindow() a tendance à ne pas fonctionner et faisant clignoter Excel sur la barre des tâches pour inviter à une action utilisateur. Je vais essayer ta suggestion avec Alt.

En attendant, j'ai réussi (chez moi en tous cas) à limiter fortement voire à supprimer le flash de changement de Parent de Word dans le sens Word -> Excel en rendant temporairement invisible la fenêtre (dans les 2 versions).

Si tu veux vérifier si ça a une quelconque efficacité chez toi, reprends le fichier du Post #307.
 
Bonjour tout les deux
chez moi le #307
je ne sais pas ou il est passé le monitoring mais je n'ai plus le focus automatique
je suis obligé de cliquer deux fois pour que la cellule sélectée soit prise en compte quand je reviens dans excel
donc avant ça clignotait et maintenant ça fait plus rien

testé sur 2013 32 et 2016 64
résultat pareil pour les deux
mais entre nous c'est pas plus mal si il n'y a rien qui tourne derrière ca me convient
bien que pour le slide forcement la methode que tu emploie l'oblige

j'ai quand même un peu de mal à comprendre quand tu dis que le volet xml c'est compliqué
tu fait un setparent sur le xldesk et moi sur le bosa parent(2)
la ou ça se complique c'est les bouton croix et fichier qui giclait le volet xml
j'ai donné la solution et les explications du phénomène de 3 IA qui se raccordent dans l'ensemble

Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
935
Réponses
0
Affichages
2 K
Retour