XL 2016 affichage userform avec 2 ou + ecrans

roby

XLDnaute Occasionnel
Bonjour le forum,

Lorsqu'on lance un fichier Excel sur un poste avec plusieurs écrans, à chaque fois les userform s'affichent sur un autre écran que l'écran ou est affiché excel.
y a-t-il une parade pour que cet userform s'affiche dans la même fenêtre que excel ?

je joint le même fichier solutionné dernièrement pour le test.

Merci encore.
 

Pièces jointes

  • Roby1.xlsm
    19.8 KB · Affichages: 17

patricktoulon

XLDnaute Barbatruc
Re bonjour @Dudu2,
Excuse moi si les explications ne sont pas claires.
Le code permet par exemple de positionner une image par rapport à l'angle supérieur gauche d'une cellule.
Donc, dans le fichier joint, si on clique sur le bouton "Positionnement sur cellule G4", l'image du papillon est donc positionnée par rapport à la cellule G4 et peu même être redimensionnée.
L'idée, puisque l'on parlait à l'origine de positionnement de Userform était de voir si on pouvait faire de même avec un UserForm. Mais a priori cela n'est pas concluant. C'était juste une idée.
C'est mieux expliqué maintenant ?
@+ Lolote83
Bonjour @Lolote83
le positionnement d'une image sur une feuille et le positionnement d'un userform ne prennent pas les mêmes chose en compte
pour une image left et top 0 c'est le haut gauche de la feuille excel
le left et top 0 c'est le haut gauche de l’écran pour un userform
 

Dudu2

XLDnaute Barbatruc
Tu as fait le positionnement d'une image. OK.
Pour information, si tu as besoin d'une fonctionnalité complète de positionnement d'image dans une cellule ou un plage de cellule j'ai un Module avec une Fonction avec de multiples paramètres.

Tu cherches à positionner un UserForm sur une cellule ?
Va voir cette ressource:
 

Dudu2

XLDnaute Barbatruc
Si tu es sur Windows 10+ (ou inférieur sans doute aussi) et un Excel récent, tu remarqueras que le cadrage du UserForm est visuellement légèrement décalé par rapport à la cellule.

En fait le cadrage est parfaitement exact, mais il faut compter avec des marges invisibles du UserForm.
Je sais les corriger pour Windows 10+ Excel 2016+ mais je ne me suis pas penché sur de combinaisons des versions autres. Peut-être que @patricktoulon l'a fait. car on a travaillé un moment ensembles sur ce sujet.

Ce problème est aussi présent dans le code fourni pour les moniteurs et la fonction de positionnement PlaceUserFormInMonitor() corrige le positionnement pour Windows 10+ pour avoir visuellement un placement exact.
 

patricktoulon

XLDnaute Barbatruc
Bonjour @Dudu2 non c'est ta faute si tu comprends les choses de travers 🤣

testez ceci
le besoins de redressage left top n'est pas effectué tout de suite
il s'affiche d'abords dans les textbox
testez le bouton voir si le calcul de redressage est bon
c'est la fonction ecart qui utilise justement la dll qui se charge de l'affichage des thèmes dans W7,8,10,11
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
regarde
demo.gif
 

Dudu2

XLDnaute Barbatruc
Ouais, c'est bien. Mais il faut quand même intervenir manuellement.
En fait il faudrait lancer un test avec plein de gens ayant des configs différentes et leur demander de renvoyer leurs corrections et leur config Windows & Office.
 

patricktoulon

XLDnaute Barbatruc
Ouais, c'est bien. Mais il faut quand même intervenir manuellement.
Mon cher @Dudu2 je pense qu'il faut arrêter de lire en diagonale voir même ouvrir le fichier
tu comprendrais que la fonction peut être directement appliqué
c'est pour la démo qu'elle est exécutée par le bouton

En fait il faudrait lancer un test avec plein de gens ayant des configs différentes et leur demander de renvoyer leurs corrections et leur config Windows & Office.
là encore tu passe à coté de la chose
il n'y a plus de version qui tienne
 

Dudu2

XLDnaute Barbatruc
Bonjour @patricktoulon,
Oui, je l'ai testée et je viens de terminer le code.
En fait je trouve une mini différence sur ma config (W10 Office 16) sur les corrections.
Tu peux visualiser la chose en appuyant sur le bouton de ce fichier.

Ce qui m'embête c'est que la fonction ne peut être utilisée que si le UserForm est affiché.
 

Pièces jointes

  • VBA Positionnement rapide UserForm sur Objet d'une feuille (Cellule, Shape).xlsm
    43.7 KB · Affichages: 8

patricktoulon

XLDnaute Barbatruc
oui
le principe est simple
le rectangle fenêtre avec thème pris en compte - le rectangle fenêtre supposé être
ça n'est pas plus compliqué que ça
moi j'ai bloqué en dessous zero, peut faudra il enlever cette condition j'ai déjà vu sur des W10 des -10 , -12
mais dans n'importe quel cas tu a maintenant le moyen de savoir la dimension de cet ecart réel et non supputé ou calculé avec d'autre propertie qui n’étaient qu'approximatives
ça donne combien chez toi ?
 

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 197
Membres
110 703
dernier inscrit
papysurf