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:

patricktoulon

XLDnaute Barbatruc
re
Bonjour @Usine à gaz
oh ben ca pas trainer je vais mettre la ressource calendar a jour
il faudra bien évidemment attendre la validation de la moderation
mais bon d'ici demain j'aurais tout revérifier 3 fois ,je mettrais les deux le Calendrier et le skinner
il sera dispo quand la modération aura validé
j'ai encore un peu de boulot quand meme
les commentaires
les explications
les Fans de la version 4.2.2 NOSKIN ne seront pas dépaysé les codes d'appels ne changent quasiment pas
etc....
😁
 

patricktoulon

XLDnaute Barbatruc
re
la page d'acceuil
1636982134128.png
 

patricktoulon

XLDnaute Barbatruc
Bonjour @Dudu2
ben ça fait partie de mon metier je pense à la base
vendeur concepteur cuisine ;il faut être un peu créatif et moi j'en déborde 😅😂🤣
a tu vu la video

qu'en pensez vous????
est ce que j'ajoute la possibilité comme l'ancien skinner d’enregistrer le theme dans un tableau ou est ce que le fait de pouvoir transférer en dur le design du skinner vers le calendar suffit
sachant que le calendar dans mon fichier reste comme le dernier theme l'a mis et que l'on a un boutondans le skinner pour le reprendre ????????
 

patricktoulon

XLDnaute Barbatruc
re
bonsoir
teste ça dans une sub
VB:
Sub test()
    Op = Val(Mid(Application.OperatingSystem, InStrRev(Application.OperatingSystem, " ")))
    appv = Val(Application.Version)
    EcX = 4 And Op = 6.01 And Int(appv) < 16: EcY = 4    'ecart cadre
    EcX = 4 + (-9 And Op = 10 And Int(appv) > 12): EcY = EcY + (-5 And EcX < 4)    'ecart cadre
    MsgBox EcX & vbCrLf & EcY
    Debug.Print "windows version " & Op
    Debug.Print "excel version =" & appv
    Debug.Print "decalage gauche= " & EcX
    Debug.Print "decalage top= " & EcY
End Sub
il me faudrait les version W8 pour compléter
il me semble que c'est 6.02 mas j'en suis pas sur

resultat chez moi W7 sur 2013
windows version 6,01
excel version =15
decalage gauche= 4
decalage top= 4
le résultat que tu devrais avoir sur W10
windows version 10
excel version =15
decalage gauche= -5
decalage top= -1
 

Dudu2

XLDnaute Barbatruc
En effet, Windows 8 c'est 6.02.

Sur Windows 10 ce code donne:
1637093281658.png


En fait ça semble normal car si sur Windows 7/8 il faut décaler vers la droite et vers le bas (pour positionner le UserForm sur le coin haut gauche d'une cellule par exemple) en Windows 10 il faut décaler vers la gauche et vers le haut car si le UserForm est parfaitement positionné, il possède des marges quasi-invisible (ombré très léger) qui donnent l'impression d'un décalage.
Ça c'est la partie simple qui doit suffire à ton Calendrier car je suppose que c'est ton souci premier.

Après si on doit décaler le UserForm de sa largeur et de sa hauteur il faut aussi tenir compte de valeurs que les marges ne suffisent pas à refléter sur Windows 7/8. Mais ça c'est mon problème de positionnement d'un objet par rapport à un autre objet que j'ai zappé pour le moment car je me heurte à un autre souci de ComboBox / crash Excel.

J'aimerais savoir où tu as récupéré ces chiffres.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Pour info sur mon windows 10 / Excel 2016 j'ai des bons résultats avec:
TopBorderSize = 0.8
SideBorderSize = (UserForm.Width - UserForm.InsideWidth) / 2 '5.4 points

BottomBorderSize = (UserForm.Width - UserForm.InsideWidth) / 2

A prendre en négatif pour le positionnement direct où tu n'as besoin que des 2 premiers.