collection fausse boite de dialogue (Patricktoulon) episode 1 un vrai faux calendrier

collection fausse boite de dialogue (Patricktoulon) episode 1 un vrai faux calendrier 4.1.9.Q-I-S-RU

bonjour a tous
juste une petite correction pour les numéros de semaine
l'index pour weekday n'etait pas dynamique
VB:
'mise ajour du clavier
Public Sub ReloadClavier()
    Dim X&, I&, A&, NB_JOURS&, Y&, WkD&, j&
    If Cbmonth.Value = "" Or Cbyear.Value = "" Then Exit Sub
    Select Case Calendar.region
    Case 0, 22: WkD = vbSunday: j = 1
    Case 1, 2, 12, 13: WkD = vbMonday: j = 2
    End Select
    X = Weekday(DateSerial(Calendar.Cbyear, Calendar.Cbmonth.ListIndex + 1, 1), WkD)
    NB_JOURS = Day(DateSerial(Cbyear.Value, Cbmonth.ListIndex + 2, 0))
    For I = 1 To 6: Me.Controls("sem" & I) = "": Next
    For I = 1 To 42
        With Calendar.Controls("j" & I)
            .Caption = "": .Enabled = False: .BackColor = bt2Back: .ControlTipText = ""
            If I >= X And A <= NB_JOURS - 1 Then
                .Visible = True: A = A + 1: .Enabled = True: .Caption = A: .BackColor = bt1Back

                Y = CLng(DateSerial(Calendar.Cbyear.Value, Calendar.Cbmonth.ListIndex + 1, A))
                Controls(.Tag).Caption = Evaluate("= TRUNC((" & Y & "-WEEKDAY(" & Y & "," & j & ")+11-DATE(YEAR(" & Y & "-WEEKDAY(" & Y & " ," & j & ")+4),1,1))/7)")
                .BackColor = férié(I)
            End If
        End With
    Next
End Sub
Bonjour a tous
voici 3 nouvelles regions
Italien
Suisse( Genève,Vaud,Neuchatel,etc..)
royaume uni(Angleterre,pays de galles,Irlande du nord,écosse)
pour la suisse et le royaume uni il y a plusieurs sub regions que j'ai signifier entre parentheses dans les controltiptext

récapitulatif interface dispo actuellement
0 =US
1=FR
2=CA
22=QUEBEC
12=Italie
13=suisse
33=royaume uni

bien évidemment l'interface est toujours dans la langue appelée
exemple d'appel
VB:
Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Target(1).Row = 1 Or Target.Columns.Count > 1 Then Exit Sub
    Cancel = True

    Select Case Target.Column

    Case 1: Target = Calendar.ShowX(Target(1), 2, 0, 0):    ' region = 0  Etats Unis

    Case 2: Target = Calendar.ShowX(Target(1), 2, 0, 1):    ' region = 1  France

    Case 3: Target = Calendar.ShowX(Target(1), 2, 0, 2):    ' region = 2   Canada

    Case 4: Target = Calendar.ShowX(Target(1), 2, 0, 22):    ' region = 22  "QUEBEC" Canada

    Case 5: Target = Calendar.ShowX(Target(1), 2, 0, 12):    ' region = 12  "Italie"

    Case 6: Target = Calendar.ShowX(Target(1), 2, 0, 13):    ' region = 13  "suisse"(plusieurs sub régions)

    Case 7: Target = Calendar.ShowX(Target(1), 2, 0, 33):    ' region = 33  "Grande Bretagne"(plusieurs sub région)

    Case Else: Target = Calendar.ShowX(Target(1), 0, 2):    'automatique region

    End Select

  End Sub
demo7.gif


enjoy :)
Bonjour a tous
VERSION 4.1.7Q
j'ai ajouté la région 22 pour l'affichage québécois partie francophone du Canada
dont le semaine commence un dimanche comme en US mais en langage français
bien entendu j'ai ajouté les jours fériés qui sont propres a cette partie du canada
j'ai revu aussi 2/3 petites choses afin de faciliter l'ajout de région(pays+langage+fériés)

et les couleurs sont maintenant paramétrables en haut de module avec les constantes (commentée pour identifier leur fonction)
Vous pouvez désormais lui donner l'apparence de votre choix

un petit visuel pour donner une idée des possibilités
demo7.gif

enjoy:)
Ajout de deux jour féries pour (l'Alsace et la Moselle)
vendredi saint 2 jours avant pâques
Saint Etienne noel+1 jour

correction des accents dans les tooltiptext dynamique
bonjour a tous
2 petite mises a jour
'*mise a jour 26/10/2020
'*passage des N°de semaine en ISO avec fonction perso(((((compatible toutes version excel)))))
'
'*mise ajour 28/10/2020
'*coloration automatique des weekend(Fr samedi/dimanche) (US vendredi / samedi) qui était absent de cette version du calendrier
pour la couleur de la pentecôte et le lundi de pentecôte


VB:
Case dat = paques + 49: férié = RGB(255, 200, 0): ctrlJ.ControlTipText = "Pentecote"                                      '  pentecote        calculée
        Case dat = paques + 50: férié = RGB(255, 200, 0): ctrlJ.ControlTipText = "Lundi de Pentecote"                                      '  pentecote        calculée
V 4.1.4
correction d'un bug mineur sur
la synchronisation spinbutton et combobox des mois

Ajout:
remise en place du roll (up/down) sur le spinbutton des mois comme dans les version 1 à 2.x
(janvier-1 = décembre année précédente)
(décembre +1 = janvier année suivante )
juste une petite correction sur la target empty
V4.1.1
Corrections
  1. calendrier vide en re sélection (ok)
  2. déplacement du code de la création de date dans la fonction d’appel (ok)
  3. aménagements et diverses modifications dans le code
Version 4.0
bonjour a tous et voila un virement a 190°
- code entièrement repensé
-design un peu différent,New!!!
-méthode utilisée inedites New!!!
-méthode d'apel lineaire New!!!
-utilisation de classe interne (intra userform)(pas de module classe)
-code de positionnement repensé(prise en charge des figé,freezepanes,etc...)New!!!
-auto fermeture sans perte de la donnée
-définition des jours fériés dans les controltiptext
-etc..

2 forme d’appel linéaire
  1. par un object range / msforms.control
  2. direct avec argument left ,top, region (0/1/2/automatique)
ci joint dans le fichier
exemple sur range
exemple sur controls dans userform (testeur)
exemple avec une sub

Pièces jointes

  • demo3.gif
    demo3.gif
    550.5 KB · Affichages: 161
  • J'aime
Réactions: goube et ChTi160
Haut Bas