Task Pane Project R-W v2.0   (le volet docké a droite de la feuille Excel)(Macro complementaire)

Task Pane Project R-W v2.0 (le volet docké a droite de la feuille Excel)(Macro complementaire) 2.1.2

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 !

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

Task Pane Project R-W v2.0 (le volet docké a droite de la feuille Excel)(Macro complementaire) - Afficher un document ou une page web volet perso docké dans la feuille excel

Bonjour a tous
suite a une demande et discussion j'ai développé cet utilitaire le "Task Pne project R-W"
cet utilitaire vous permet de docker un document(PDF, Word, Txt, CSV, HTML, XML,eetc..) dans un volet personnel dans la feuille excel a droite


TPP-RW

Task Pane Project R-W V2.0​


Read / Work (lecture & écriture) — Auteur : patricktoulon (Excel-Downloads)...

En savoir plus sur cette ressource...
 
Salut PatrickToulon,
Voici ce qui se passe avec ton Addin sous Excel 2021 64 bits , en ouvrant un document Word :
PbExcel2021_64bits.gif


La fenêtre word ne se redimensionne pas, les éléments du volet xml source sont visibles, si on clique sur la croix du volet ça ferme brutalement word. Le cache sur Fichier ne le couvre pas.
Nullosse
 
Bonjour @nullosse , @Dudu2

@nullosse
oui l'adaptation est encore un peu pas tout a fait exacte selon vos versions
en fait le cache est presque une bonne idée mais ca vous privait des fonctionnalités du bouton fichier de word dans la version qui suis le cache est un bouton complétement transparent qui permet de transmettre le click sur le bouton fichier sans perturber excel
du coup le menu fichier de word fonctionne
du coup plus rien n'est caché pour word

pour que je puisse mettre au point un positionnement exacte pour tout le monde lance les sub de liste et donne moi les tableaux obtenus
j'aurais de quoi faire comme çà les handle les positions les dimensions que je vois ce qui diffère avec ma version d'excel

en primeur avant qu'elle soit chargé dans la ressource la version v2 bis v2.1.2

Patrick
 

Pièces jointes

et oui on voit tout de suite ou est l'erreur pour la liste excel
dans ta version on se retrouve avec une classe "F3 Server d2e90000" qui est ni plus ni moins que la pane intérieur du userform juste au dessus de la bosa dans la liste donc mon -2 dans la version 2.0 ne pouvait pas marcher bien évidement dans la version 2.1.2 la V 2 bis
j'utilise un getparent deux fois sur la bosa du coup j'ai bien ma nuipane du volet a coup sur
je m'en doutais un peu de la hiérarchie qui différait avec moi vu la gestion MDI/SDI qui diffère
1760714809075.png



pour word visiblement ca bouge pas en ce qui concerne la pane pour le bouton transparent ajouté
la msoworkpane est toujours 2 crans au dessus
1760714707746.png


pour les dimensions c'est bon ?
 
pour les dimensions c'est bon ?
si c'est les dimensions de la fenêtre word dans le volet c'est bon :
avec un volet redimensionné au max , on voit bien toute l'appli word en largeur et en hauteur.
Par contre le Kill de toutes les instances Word c'est un peu "bourrin" car si il y a un document word ouvert sur le bureau où qu'il y a un document qui a été modifié dans une instance fantome on va se retrouver avec des récupérations de documents. Il faudrait récupérer le PID du word que l'on ouvre et ne tuer que lui (avec un risque quand même de récupération de document)
 
et oui ces exepériences là je les ai faite tuer le processus pil poil ne garanti pas le bon word docke même si ma fonction getwinhandle va chercher la classe opuapp et le nom du document sans son extension pour texte
pourquoi:
et tout simplement par ce quand tu ouvre 1,2,3 10 word ils ont tous une netUIpane commune d’ailleurs si tu observe dans la gestion de tache les word sont tous enfant de winword.exe sauf les fantômes mal fermés et si tu regarde bien un seul PID est dispo pour ces words ouverts c'est celui de winword .exe sur leur ligne respective ils n'ont pas de PID
du coup pour prendre le bon c'est compliqué
heureusement nous savons que j'ouvre word par un object word.application du coup je quit le bon mais des fois malgré ces deux précautions ca décroche pas la bonne fenêtre
peut être ou sans doute le fait qu'elle soit dockée dans excel
il est bien entendu et evident que j'ai tester le sendmessage et postmessage sur le handle de la opusapp tu t imagine bien
sauf que la opusapp contient tout les word ouverts dans les procc ; c'est ballo

du coup j'ai pris la décision de trancher avec ma machette comme un guerrier papouasien tout ce qui rapporte a WORD a la femeture du dock word

a tu essayer le bouton fermer de word après avoir modifier le word pour voir si le dialogue apparait aussi chez toi ?
a tu tenter de cliquer sur fichier de word ?
car c'est la dessus qu'ont porté mes essais et travaux pour vous rendre un word a part entiere (docké mais modifiable, enregistrable

donc en espérant que le bouton transparent (qui sert d' intermédiaire pour relèguer la commande au vrai ) soit bien placé (j'ai pris de la marge me semble t il )
pour les autres on s'en fou , je shunte la barre de titre , le bouton fermer du ruban rempli parfaitement bien son rôle

Patrick
 
une derniere remarque que je n'ai pas signalé
l'avantage que l'on a a travailler avec le volet xml et mon bouton transparent

s'est qu'a suposer que j'ouvre un word et que je ferme excel
et bien le bouton fermer (la croix )de excel va d'abords fermer le volet ainsi que word proprement et il faudra un 2d click sur la croix pour fermer excel

tout le secret reside la dedans
VB:
HwnDmask = CreateWindowEx(&H8, "Button", vbNullString, &H80000000 Or &H10000000, 0, 5 + Application.top * PpX, 60 * WindowsZoom, 55 * WindowsZoom, Application.hwnd, 0, 0, 0)
en effet les propriété que je lui ajoute sont nombreuses ,dont la propagation de l'event window en réception et émission
 
une derniere remarque que je n'ai pas signalé
l'avantage que l'on a a travailler avec le volet xml et mon bouton transparent
s'est qu'a suposer que j'ouvre un word et que je ferme excel
et bien le bouton fermer (la croix )de excel va d'abords fermer le volet ainsi que word proprement et il faudra un 2d click sur la croix pour fermer excel
tout le secret reside la dedans
VB:
HwnDmask = CreateWindowEx(&H8, "Button", vbNullString, &H80000000 Or &H10000000, 0, 5 + Application.top * PpX, 60 * WindowsZoom, 55 * WindowsZoom, Application.hwnd, 0, 0, 0)
en effet les propriété que je lui ajoute sont nombreuses ,dont la propagation de l'event window en réception et émission
Chez moi , Windows 11 Excel 2021 64 bits, ton bouton ne vient pas se mettre à la bonne place. Il vient s'accrocher à XLMAIN :
BoutonCache.png


SearchButton.gif



et j'ai la barre de titre :
BarreDeTitre.gif



Pour indication voici une estimation de l'utilisation des versions d'Office en France (pour les entreprises - pour l'usage personnel c'est certain qu'il
doit y avoir plus de versions anciennes utilisées ) :
Les pourcentages ci-dessous sont des estimations arrondies qui doivent être prises comme une fourchette indicative :

  • Microsoft 365 / Office 365 (abonnement) : 35–45 %. Electro IQ+1
  • Office 2016 + Office 2019 (licence perpétuelle encore répandue dans les entreprises/PME) : 30–40 %. (beaucoup d’entreprises sont encore sur 2016/2019). intra2net.com+1
  • Office 2021 / LTSC (achat ponctuel récent) : 5–10 %. (adoption plus lente ; choix pour qui veut éviter abonnement). Microsoft Learn
  • Versions anciennes (2013, 2010, 2007 et antérieures) : 5–12 %. (restes d’installations non migrées, surtout PME/administrations). intra2net.com
et voici la réponse de chatGPT concernant la différence de comportement entre Office 2013 et Office 2021 :

1. Le bouton devient “fils” de XLMAIN​


Dans Office 2013, la structure des fenêtres Excel était encore assez plate :


XLMAIN
└── XLDESK
├── EXCEL7 (fenêtres de classe de document)
└── bosa_sdm_XL9 (paneaux ancrés)

Depuis Excel 2016 et surtout 2021, Microsoft a :
  • refactoré la hiérarchie des fenêtres (plus de sous-fenêtres MDI classiques),
  • déplacé le ruban et les panneaux dans une UI basée sur WPF et COM,
  • changé la manière dont les contrôles sont encapsulés (notamment les “Docked Panes”).

👉 Résultat :
Quand tu fais SetParent HForm, Hdock, Excel 2021 ne reconnaît plus Hdock comme une fenêtre de conteneur valide et rattache ton formulaire directement à XLMAIN, d’où le “fils de XLMAIN”.

🧩 2. La barre de titre Word n’est plus supprimée​


La ligne :
VB:
    SetWindowLong hword, -16, &H16000000

modifie les styles de fenêtre (WS_EX_ / WS_) de Word.
Mais sur Office 2021, Word utilise un cadre DWM (Desktop Window Manager) et des styles non hérités du Win32 pur.
Résultat : le changement de style est ignoré, donc la barre de titre reste visible.
 
Dernière édition:
re
Bonjour @nullosse
je reponds en commencant par en bas

pour le style word je sais mais ça agi quand même sur certain aspect de la fenêtre qui sont nécessaires

après le fait que hdock n'est pas reconnu blablabla ...

c'est encore une ineptie de chatGPT
c'est simplement encore une différence d'ordre des fenêtres puisque les fenêtres requise tu les a mais listée dans un ordre différent sur les tableaux que tu m'a retourné hier
du coup il va falloir que je me débrouille pour choper le bon avec getparent

mais mis à par la surcouche DWM le chat qui pète t'a raconté que des conneries avec quelque petite vérité glissé dans son discours

moi je me fis a ta liste et je te le dis les fenêtres sont bien toutes là

partage avec moi le lien de votre discussion que j'aille lui tirer les oreilles moi tu va voir quand je vais le contredire il va te sortir tout une autre histoire j'ai l'habitude avec lui

serieux " hdock n'est pas reconnu alors il attache a xlmain "

si hdock n'est pas reconnu c'est 0 et zero c'est le desktop pas xlmain
 
salut patricktoulon,
tu peux dire ce que tu veux, mais tant que tu n'auras pas essayé avec un Excel très récent, tu ne pourras pas affirmer des choses. Moi je constate. Ce que je peux dire aussi c'est que le SetParent casse aussi le UIAutomation . Après un SetParent, avec un inspecteur UIautomation on ne voit plus les objets qui étaient dans la fenêtre sur laquelle on a fait un SetParent.
Les solutions les plus sûres : pour la barre de titre le décalage vers le haut. Pour Fichier le décalage à gauche parce qu'en plus avec ma version d'excel le ruban de word à tendance à se remettre au premier plan donc même avec un masque , il repasse par dessus.
 
Dernière édition:
et oui tout simplement par ce que uiautomationclient a besoin d'avoir le focus sur un certain object pour pouvoir l'identifier
c'est un problème que j'ai du aborder en construisant mon ui inspector
a partir du moment ou tu insère un intru et voir même avec setwindowpos firstplan ou pas impose un changement de focus
du coup absolument tout les uiinspector vrillent

après on va pas polluer cette source
on va ouvrir un post si tu veux et chercher un moyen de chopper le bon handle directement


et pour info j'avais essayé avec 2019 et 2021 c'est pour ca que dans la discussion j'ai été long a vous le donner car au boulot je peux pas passer des heures a tester
 
Sinon il me semble que tu avais déjà trouvé des solutions différentes qui devraient fonctionner sur toutes les versions.
Pour la barre de titre le décalage de word vers le haut ( -50 * WindowsZoom par exemple)
et pour l'onglet fichier faire un "trou" dans le userform en haut à gauche à l'emplacement où il devrait avoir l'onglet fichier.
 
- 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
Retour