XL 2010 Pb affichage userform

FG72

XLDnaute Junior
Bonjour à tous,
D'abord, tous mes voeux pour cette nouvelle décennie :)
j'ai un problème d'affichage avec une configuration de poste avec 2 écrans: j'ouvre un classeur contenant un userform sur l'écran principal et si je veux le faire glisser sur le second écran, le userform (non modal) reste sur l'écran principal !

merci par avance de votre aide.

Bonne journée,
François
 

FG72

XLDnaute Junior
Bonjour Patrick, merci de t'intéresser à mon cas. Oui, pas de pb.
Je vous joins le fichier que j'avais trouvé sur le net d'un certain Julian que j'ai adapté à mes besoins.

vous me direz si ça fait la mm chose sur vos postes
 

Pièces jointes

  • Calendrier non modal.xlsm
    41.5 KB · Affichages: 15

patricktoulon

XLDnaute Barbatruc
re
Bonjour sylvanu
c'est un peut le soucis entre le mode etendu et le 2 ecrans
en fait en mode etendu sur W7 ca me donne un ecran de (ecran1.width+ecran2.width) de large
il faut donc jouer avec le left
en mode 2 ecrans pas de soucis
en gros dans l’événement layer du userform tu force le left a une certaine position

je ne sais plus si sans les api avec le application.width en mode etendu tu peux en récupérer le width de l'application
si c'est le cas
dans l'evenement layer
if me.left+me.width> application.width then me.left= application.width-me.width

cela a condition que l'application soit en windowstate xlmaximized( bien sur )

pour commencer
quand tu agrandi l'application ou se trouve t elle ? son width fait il 1 ecran ou deux ??
 
Dernière édition:

FG72

XLDnaute Junior
@ Patrick: je ne comprends pas tout ce que tu me dis, mais quand j'agrandis l'appli elle reste sur un écran.
@ Sylvanu: le useform se balade bien aussi mais il faut que je le fasse glisser d'un écran à l'autre indépendamment du fichier lui-même.
drais que le useform reste placé sur la feuille quand je glisse d'un écran à l'autre
 

patricktoulon

XLDnaute Barbatruc
re
burk!! burk!!! burk!! pouha!pouha!!
bye bye les apis
VB:
Option Explicit



Sub UserFormAlign()

    Dim  ptopx#
 
    'coefficientpoint to pixel sans api
    With ActiveWindow.ActivePane
        ptopx = (.PointsToScreenPixelsY(Cells.Height) - ActiveWindow.ActivePane.PointsToScreenPixelsY(0)) / Cells.Height
    End With
    With FormCal
        .StartUpPosition = 0
        .Left = (ActiveWindow.ActivePane.PointsToScreenPixelsX(ActiveCell.Left) / ptopx) + ActiveCell.Width' a droite de la cellule
        .Top = (ActiveWindow.ActivePane.PointsToScreenPixelsY(ActiveCell.Top) / ptopx) + ActiveCell.Height ' a  l'angle bottom-right de la cellule
        '.Show
    End With
End Sub

souhaitons tout de même que tu n'est pas de fractionnage du sheets dans quel cas tu trouvera mon calendrier dans les resources de ma collection fausse boite de dialogue dans le quel tu y trouvera la fonction de placement même sur un sheets fractionné
cela a été mis au point par Dranreb,Rolland et moi après une très longue discussion

burk!!! les api en 64
LOL ;)

ps: tu devra peut etre supprimer ".Activepane" du code pour 64 ;)

edit: code nettoyé de tout commentaire
 
Dernière édition:

FG72

XLDnaute Junior
pardon, le S entre crochets ??
re
burk!! burk!!! burk!! pouha!pouha!!
bye bye les apis
VB:
Option Explicit



Sub UserFormAlign()

    Dim  ptopx#

    'coefficientpoint to pixel sans api
    With ActiveWindow.ActivePane
        ptopx = (.PointsToScreenPixelsY(Cells.Height) - ActiveWindow.ActivePane.PointsToScreenPixelsY(0)) / Cells.Height
    End With
    With FormCal
        .StartUpPosition = 0
        .Left = (ActiveWindow.ActivePane.PointsToScreenPixelsX(ActiveCell.Left) / ptopx) + ActiveCell.Width' a droite de la cellule
        .Top = (ActiveWindow.ActivePane.PointsToScreenPixelsY(ActiveCell.Top) / ptopx) + ActiveCell.Height ' a  l'angle bottom-right de la cellule
        '.Show
    End With
End Sub

souhaitons tout de même que tu n'est pas de fractionnage du sheets dans quel cas tu trouvera mon calendrier dans les resources de ma collection fausse boite de dialogue dans le quel tu y trouvera la fonction de placement même sur un sheets fractionné
cela a été mis au point par Dranreb,Rolland et moi après une très longue discussion

burk!!! les api en 64
LOL ;)

ps: tu devra peut etre supprimer ".Activepane" du code pour 64 ;)

edit: code nettoyé de tout commentaire

Mai
trop balaise!!!???????? o_O :oops::rolleyes:
c'est du tout cuit :rolleyes:
je repete le ps
tu devra peut etre supprimer ".Activepane" du code pour 64;)

Tu as raison, mais je suis assez limité :rolleyes:, en tout cas merci mille fois. Je vais tester également sur les autres configs car ce classeur sera utilisé sur des postes différents.
Merci également à sylvanu pour ses recherches, on se sent moins seul :)
 

Discussions similaires

Statistiques des forums

Discussions
312 089
Messages
2 085 206
Membres
102 819
dernier inscrit
Michew13