Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
ben non la tu biaise tes résultats
fait le avec la même shapes sur les 4 panes tu verra
d'autant plus que là tu passe par un bouton passerelle
alors pour afficher un userform près de la flèche tu va sélectionner la flèche puis cliquer sur bouton
 

Dudu2

XLDnaute Barbatruc
Écoute @patricktoulon, si ton objectif est de démontrer que la fonction qui ne te plait pas ne fonctionne pas, soit, je te l'accorde volontiers elle ne fonctionne absolument pas, pour pouvoir mettre une terme à cette discussion stérile et sans fin qui ne m'intéresse plus.
Tu as raison, tu procèdes de la bonne manière, tu es le plus intelligent et le meilleur codeur VBA de la planète et mon code est complètement faux.
Raz le bol ! Je ne vais pas passer l'après-midi sur ces conn...
 

Dudu2

XLDnaute Barbatruc
une shape ou un activx ou ce que tu veux n'a pas de panne !!!
Si elle est dans 2 Panes ou plus c'est le premier qui est retourné
Et bien sûr que si qu'il faut connaître le Pane dans lequel elle apparait sinon comment tu calcules le décalage avec le Pane.PointsToScreenPixelsX(Obj.Left) ? Le Pane en question il tombe pas de ciel !
Bon j'arrête là. Basta.
 

patricktoulon

XLDnaute Barbatruc
re
Si elle est dans 2 Panes ou plus c'est le premier qui est retourné
ah!!..enfin
Et bien sûr que si qu'il faut connaître le Pane dans lequel elle apparait sinon comment tu calcules le décalage avec le Pane.PointsToScreenPixelsX(Obj.Left) ? Le Pane en question il tombe pas de ciel !
Bon j'arrête là. Basta.
Et bien sûr que si qu'il faut connaître le Pane
ben non !!!
sinon comment tu calcules le décalage avec le Pane.PointsToScreenPixelsX(Obj.Left) ? Le Pane en question il tombe pas de ciel !
enfin la bonne question
ben on y aura mis le temps
ben tout simplement il te faut une api en plus
je te laisse deviner la quelle ou je te le donne tout de suite ?

elle est stérille par ce que tu n’écoute pas et on arrive enfin au bout de x echange à ce que tu te pose les bonnes questions

et c'est pas peine de te forcer la main tu pourra pas dire le contraire
alors tu veux savoir ou ça t’intéresse plus
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
@patricktoulon, dans le cadre de mon code PositionUserFormSurObjetFeuille() j'en ai rien à faire de savoir dans quelle Pane se trouve l'objet sur lequel j'ai cliqué. Mon code n'a pas besoin de ça.

Je ne sais pas pourquoi tu veux m'amener sur ce terrain en jouant les professeurs et aux devinettes sans jamais accoucher comme d'hab, mais c'est TON problème et je ne me suis JAMAIS posé cette question. Un jour peut-être mais pas dans le cadre du positionnement du UserForm. J'ai une fonction qui marche et me convient parfaitement.
 

Dudu2

XLDnaute Barbatruc
Non, tu peux l'envoyer ça peut servir bien sûr.

Mais je te connais maintenant et je m'en doutais. Tu poses une question (Pane de l'objet cliqué ? T'aurais pas une solution mon gars ?) sachant que tu as déjà la réponse (car tu 'avais) juste pour laisser le questionné mariner et lui montrer combien il est nul avec force commentaires. C'est assez désagréable, je te le dis.

D'ailleurs je m'étais préparé en Post #110 j'avais écrit:
Je me méfie quand tu me poses ce genre de question pour m'amener à exposer des options que tu te ferais un plaisir de dézinguer !
 

patricktoulon

XLDnaute Barbatruc
ah ben il y en a 2 ou 3 de virus en ce moment qui font du bordel
mais non je dézingue pas je suis dur c'est tout
je test tout dans tout les sens jusqu’à trouver le binsss je suis sans pitié
et bien sur qu'une solution j'ai faite mais il y en a peut être d'autres(et peut être mieux) c'est pour ça que je pose la question
pas pour te dézinguer même si c'est l'impression que je donne
mais le fait que tu n'incorpore pas ça dans ton module est pour moi un oubli énorme

allez va c'est pour toi ,ça aussi tout droit sorti de mon tuto pointstoscreenpixels
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Non, tu n'es pas dur, tu es manipulateur. Mais je sais décoder .
Sinon pour le clic t'as pris un gros raccourci qui consiste à placer sur les les objets candidats une Action !
Moi je m'attendais à ce que tu détectes si le clic souris était fait sur la surface des objets.
 

patricktoulon

XLDnaute Barbatruc
c'est pas un raccourci
les shapes n'ont pas de contexte contrairement au activx donc pour les shapes qui ne sont que des bimap dessinés sur la feuille la seule solution c'est la macro affectée
après pour les activx on s'en fou on fait pareil sauf que c'est déclenché dans l'event click
VB:
Private Sub CommandButton1_Click()
   MsgBox GetpaneObjectClické(CommandButton1).Index   

End Sub
et voilà tu a quelque chose de générique qui fonctionnera pour tout object
activx shape,image,etc...

dans la version finale peut variabliser une variable public userform pour choir le userform à afficher



et la seule chose que je manipule c'est le VBA
 

patricktoulon

XLDnaute Barbatruc
pour info tu a bien Rangefrompoint qui par le typename du return on peut atteindre les informations
de l'object
sauf le pane parent sinon tu pense bien je serais passer par ça

pour resumé le shapes a un seul parent c'est le sheet
 

Discussions similaires

  • Résolu(e)
Microsoft 365 32 ou 64 bits
Réponses
46
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…