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
Voilà voilà que pensez vous de ça ?
on garde ou pas ?
demo.gif
 

Pièces jointes

  • calendar light.xlsm
    36.5 KB · Affichages: 7

Dudu2

XLDnaute Barbatruc
en mode non modal sur range ;préféreriez vous l'activecell ou celle qui a été injecté
Amusant car c'est exactement la question que je me suis posée en testant ton calendrier en NON Modal.
Ben c'est métaphysique évidemment.

Une autre question m'est venue au même moment: faut-il ou non effacer le UserForm en NON Modal après le choix de la date. C'est métaphysique aussi.

Alors je me suis dit, je vais essayer avec mon propre calendrier et ajouter des paramètres:
- Garder ouvert en vbModeless (Vrai / Faux)
- Appeler une fonction au moment du choix de la date (vbModeless / vbModal)

Ça m'a permis de répondre aux 2 questions en laissant le choix à l'utilisateur.

Je te mets le fichier que tu connais, mais avec ces paramètres en plus à tester ici:
1636549464546.png
 

Pièces jointes

  • Calendrier Personnalisé.xlsm
    53.8 KB · Affichages: 5

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour le fil

faut-il ou non effacer le UserForm en NON Modal
pour moi non, ce fonctionnement en non modal persistant est très pratique en double écran, le userform dans la deuxième fenêtre, j'utilise souvent pour des fenêtres d'information temps réel. Il serait pratique aussi de pouvoir réduire/afficher le calendrier et pourquoi pas (si cela n'est pas déja implémenté) une taille par défaut en fonction de la résolution d'écran, pratique en multi postes équipés écrans différemment ou usage desktop et portable.

Bien cordialement, @+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re,
oilà voilà que pensez vous de ça ?
on garde ou pas ?
Je l'aurais fait sans événementielle, là, le clic sur cellule active le calendrier sur la cellule active (ou alors c'est le gif qui donne cette impression), j'aurais plutôt vu, clic date du userform transfère la date dans la cellule active, plus pratique je pense, à l'usage, on ne veut pas forcément insérer une date à chaque sélection de cellule quand on travaille sur des données.

Cordialement, @+
 

patricktoulon

XLDnaute Barbatruc
re
@Yeahou
le mode sans événementiel on y reviendra tout a l'heure il y est déjà dans le calendar d'origine
il y a 3 mode dans le calendar d'origine
  1. le .showX(.value maintenant)dans le light
  2. le .show center( centre du visiblerange)
  3. showtopleft avec coordonnées injectées
ce mode multi est juste prévu pour le cas ou le formulaire serait une feuille avec plusieurs cellules date
laissez moi 2 minutes je remet les textbox et shapes sur feuille en tant qu'appelant
et je regarde un peu celui de @Dudu2 aussi
 

Dudu2

XLDnaute Barbatruc
Bonjour @Yeahou,

Pour réduire le UserForm, il y aurait 2 options (plus ?).

La première est, sur une touche ou un bouton ou les deux, de placer le UserForm en bas de fenêtre et symétriquement le ramener au centre ou à sa dernière position à la ré-activation par clic sur le UserForm.

La deuxième serait de dédier un classeur ou .xlam et alors la notion de réduction pourrait s'appliquer à la tâche, mais ça implique une mise en oeuvre plus lourde.

Je vais essayer la première solution si elle fait sens.
 

patricktoulon

XLDnaute Barbatruc
re
ou alors tu utilise ma toute petite fonction le userform sera équipé comme n'importe quelle fentre de window
VB:
'**********************************************************************************************
'      Ajouter les deux boutons manquants dans la barre de titre  à l'UserForm  et le mouse resizepar les angles et les cotés
'patricktoulon
'**********************************************************************************************

'EXEMPLE
Private Sub UserForm_Activate()
    trois_boutons
End Sub

Private Sub trois_boutons()
    Dim hwnd&
    hwnd = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'api GetActiveWindow
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & hwnd & ", " & -16 & ", " & &H94CF0080 & ")")     'api SetWindowLongA
End Sub
bien que je vois pas très bien l'utilité de réduire un control (quand il est affiché c'est qu'on l'a appelé
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
re,
Pour réduire le UserForm, il y aurait 2 options (plus ?).
je pensais plutôt à cela, voir pièce jointe. (plus classique que la commande Excel4 de Patrick)

bien que je vois pas très bien l'utilité de réduire un control (quand il est affiché c'est qu'on l'a appelé
quand on travaille sur un écran de portable, il peut être intéressant de garder un utilitaire sous la main et disponible sans l'afficher en permanence

Bien cordialement, @+
 

Pièces jointes

  • Classeur1.xlsm
    21.9 KB · Affichages: 5

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise