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 !
Bonjour FG72,
Il manque quelques informations.
Comment est fait vos partages d'écran ? Deux écrans séparés, mode étendu ....
Est ce spécifique à ce useform ? Pour moi c'est plutôt lié à votre configuration écrans.
Bonjour Sylvanu,
2 écrans : 1 écran + le portable mode étendu. Même pb avec un collègue qui a une tour et 2 écrans séparés.
C'est la 1ère fois que j'utilise un useform.
Vos deux écrans sont ils séparés ou en mode étendu ?
Si dans le fichier excel vous faites "Ouvrir" , est ce que cette fenetre Ouvrir peut se déplacer sur les deux écrans ?
Sinon, cela vient de votre config écrans.
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
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 ??
Chez moi votre useform se balade correctement.
Si la fenetre Ouvrir se ballade correctemnt sur vos écrans, alors je me demande d'où peut provenir le souci.
@ 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
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
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
Tu as raison, mais je suis assez limité , 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