Autres toutes version excel tester le calendar en mode modal et non modal sur range ou control dans userform

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
j'ai pris le temps ce matin de voir un peu ce que je pourrais faire pour mon calendar
en effet il m'est souvent venu des demandes quand au fait que quand l'object appelant et fils d'un userform non modal
et effectivement mon calendar qui est en mode responsif(MODAL)(se comporte comme un msgbox) n'est pas compatible forcement
le conflit d'affichage d'un usf modal par dessus un usf non modal est déclenché
j'ai donc ici recommencé tout a zero (c'est une ébauche)mais il est parfaitement fonctionnel
dites moi ce que vous en pensez
on verra après pour les couleurs et les fériés les langue et region et tout le tointoin
merci pour les retours et suggestion a venir
 

Pièces jointes

  • calendar light.xlsm
    34.4 KB · Affichages: 42
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
voilou :
1637231134631.png
 

patricktoulon

XLDnaute Barbatruc
et ben voila c'est pas bon tu ne devrait pas avoir les mêmes nombre
c'est bien ce que je dis les api captent pas les bon handles
il faut suivre @Usine à gaz
au depart les deux hadle au vue de la position sur ta capture doivent être différents c'est pour ça que le re dressage ne fonctionne pas
il ne doivent être identique uniquement si pontstoscreenpixelx et y tombe juste au départ
tout du moins maintenant dès le 1 er tour sur 1000

sur ta capture ce n'est pas le cas
c'est donc bien un problème d'api chez vous
heureusement que tu fait des capture si j'écoute ce que tu dis je deviens dingue
 

patricktoulon

XLDnaute Barbatruc
bon ben maintenant on est fixé
c'est bien le captage des handles qui ne fonctionne pas
soit c'est windows from point
soit c'est pointstoscreenpixels qui pointe pas les bons x et y
mais comme votre userform est plutot (presque bien placé ) je pense que c'est windowfrompoint qui patauge

peut être avec un peu de chance sur 365 on fait Peter les arrangement du thème sur la fenêtre userform et tout ira bien
dans un userform
VB:
Private Sub UserForm_Activate()
    Set Rng = [D5]
   
    Hwnduf = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'handle fenetre active
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & Hwnduf & ", " & -20 & ", " & &H101C0080 & ")")
    ExecuteExcel4Macro ("CALL(""user32"",""DrawMenuBar"",""JJ"", " & Hwnduf & ")")

    With ActiveWindow.ActivePane
        PtPx = (.PointsToScreenPixelsX(72) - .PointsToScreenPixelsX(0)) / 72    'coeff pixel
        If Not Rng Is Nothing Then x = .PointsToScreenPixelsX(Rng.Left): y = .PointsToScreenPixelsY(Rng.Top)
    End With
     With Me
        .Left = (x / PtPx * ActiveWindow.Zoom / 100) ' + 3 'chez moi
        .Top = (y / PtPx * ActiveWindow.Zoom / 100) '+ 3 'chez moi
    End With
End Sub
sinon je ferais carrément péter la caption
 

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130