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
1MOIS!!!!!! 🤣
pour deux misérables points 😂
ben là tu me bas dans l’entêtement hein
quand je pense qu'avec cet api en 3 lignes c'est bouclé et pour peu que je puisse les passer en macro 4
si seulement je retrouvais cette discussion sur dvp j'ai chercher pourtant
peut être que pijaku l'a supprimé
 

Dudu2

XLDnaute Barbatruc
Le pire c'est que j'ai déroulé la version Windows 10 sans problème avec ses décalages négatifs.
D'ailleurs je ne comprends même pas comment le code a pu fonctionner si vite.
Mais les décalages positifs ne se soumettent pas aux même règles de calcul. Et je ne saisis pas pourquoi vraiment.
 

patricktoulon

XLDnaute Barbatruc
pourquoi?
W10 bordures large d'origine bordure fine affiché
W7 bordures fine d'origine bordure large affiché
en plus de ça
W10 selon le theme les valeurs changent
W7 pareil
tout ça c'est dwmapi.dll et user32 qui gèrent
si tu te sert pas d'eux il va te falloir créer un switch pour toutes les condition OPSystem/ xl version
tu a participé a cette discussion en 2017 pourtant tu t'en souvient plus?
 

Dudu2

XLDnaute Barbatruc
Non, je ne m'en souviens plus. Et je ne sais pas si l'API peut répondre à ce problème.

Je ne vais considérer que 2 cas:
- Windows 10+ (les dimensions / positions incluent les bordures, mais les bordures n'apparaissent pas à l'affichage)
- Autres (les dimensions / positions n'incluent pas les bordures qui cependant apparaissent à l'affichage)

Je ne sais pas si discriminer sur l'OS répond à tous les cas mais ça doit y répondre à 99%.

Je vais reprendre chaque situation au cas par cas dans les 2 environnements pour maîtriser les décalages nécessaires au positionnement exact d'un objet sur un autre objet, en particulier lorsqu'un UserForm est impliqué (en tant qu'objet à positionner ou en tant objet cible), et quand 2 UserForms sont impliqués (l'un en tant qu'objet à positionner et l'autre en tant qu'objet cible), avec bien sûr tous les positionnements possibles au-dessus, à gauche, à droite, en haut, en bas, et les combinaisons (en haut à droite, en haut à gauche, en bas à droite, en bas à gauche).
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour
a tous
un petit aperçu en primeur pour les participants à cette discussion de la version 4.4.1 2021 2022 SKIN du calendar
dans VBE
1636803879500.png


en fonctionnement
demo.gif


demo.gif
s
et oui j'ai remis les region qu'il gérait
j'ai ajouté le moyen de l'arranger un peu en mode VBE (skinneur de base avec la palette couleurs excel) (voir capture 1)
le skinneur plus évolué arrive ensuite il faut tout que je le refasse il n'est pas compatible avec cette version
 

Dudu2

XLDnaute Barbatruc
Bonjour @patrictoulon,

Très puissant ton calendrier, j'attends de voir la suite.
Concernant mon problème obsessionnel de positionnement (parfois se heurter à des difficultés les rends addictives) je pense avoir résolu la très difficile question de positionnement d'un objet par rapport à un autre en couvrant la plupart des cas utiles pour positionner:
- UserForm par rapport à la fenêtre (difficulté suppl. pour trouver les vrais coordonnées de la fenêtre)
- UserForm par rapport à un Control de feuille
- Control de feuille par rapport à un Control de feuille
- UserForm par rapport à un UserForm
- UserForm par rapport à un Control de UserForm

J'ai complètement revu la méthode et pris comme discriminant de comportement des UserForms la version système. Ce n'est peut-être pas toujours 100% vrai, mais à défaut d'autre chose, ça devrait s'appliquer la plupart du temps.

Ça fonctionne chez moi en Windows 10 et Windows 8.1 (avec parfois de très légers décalages que je dois vérifier) et ça devrait donc fonctionner en Windows 7.

Animation.gif
 

patricktoulon

XLDnaute Barbatruc
par contre essaie ca
cette solution je l'avais trouvé il y a plus de 4 ans
je l'avais zappé car je voulais m’abstenir des api windows
mais elle a un intérêt dans le sens ou on a les calcul en pixel tout du long
montre moi la capture avant de cliquer su appliquer
voila ce que ca donne chez moi

comme ça peut être que tu va découvrir un truc que peut être tu ignore
a savoir ;le userform c'est le carré gris et non la fenêtre entière
pour la simple et bonne raison que c'est la dwmapi +user32 qui prennent en charge l'affichage de la fenêtre

demo.gif


quand on regarde à la loupe on voit bien le trait noir de la caption pil poil sur les bordures de cellules
1636888732199.png
 

Pièces jointes

  • place le userform setwindowpos.xlsm
    28.1 KB · Affichages: 6

Dudu2

XLDnaute Barbatruc
Tanpis, je vais réserver ce module de positionnement à Windows 10 et 11 pour lesquels je contrôle bien les écarts de manière purement logique.

Pour Windows 8 j'y suis arrivé tant bien que mal de manière logique + empirique (ce qui dénote un manque de contrôle au moins partiel). Mais si Windows 7 est encore différent, je laisse tomber les versions antérieures à Windows 10 car ça devient ingérable.
 

patricktoulon

XLDnaute Barbatruc
re
je laisse tomber les versions antérieures à Windows 10 car ça devient ingérable.

c'est ca le soucis tu crois avoir résolu W10 mais c'est pas le cas , retrouve la discussion de 2017 tu verra
il y a 9 versions du résultat différent selon le theme et la version d'excel sur W10
sur W7 il n'y a que 2 possibilités selon le theme soit on corrige soit on corrige pas

quand je retrouverais la solution avec dwm je la donnerais
 

Statistiques des forums

Discussions
312 793
Messages
2 092 182
Membres
105 256
dernier inscrit
bowmore