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
A toi de désigner l'objet cliqué.
  • Si le clic le sélectionne, une Shape ou une image par exemple ça fonctionne très bien.
  • Si le clic ne le sélectionne pas, un bouton par exemple, c'est à toi de trouver l'objet concerné.
    C'est quand même pas à la fonction de faire ce boulot !
Regarde la pièce jointe 1152742
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 :oops:
🤔🤔🤔🤔
 

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
demo.gif
 
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
 

Discussions similaires

  • Résolu(e)
Microsoft 365 32 ou 64 bits
Réponses
46
Affichages
2 K

Statistiques des forums

Discussions
314 751
Messages
2 112 498
Membres
111 568
dernier inscrit
mdia27