collection fausse boite de dialogue (Patricktoulon) episode 1 Le calendrier Modal

collection fausse boite de dialogue (Patricktoulon) episode 1 Le calendrier Modal 5.2 2024

patricktoulon

XLDnaute Barbatruc
patricktoulon a posté une nouvelle ressource :

collection fausse boite de dialogue (Patricktoulon) episode 1 un vrai faux calendrier - un calendrier valable pour tout version excel

Bonjour a tous voici ma dernière version de mon calendrier all excel version
utilisable pour les cells et les controls dans un userform
affichage mode français ou US

elle fait parti de ma collection de pseudo boite de dialog perso avec des userform

En savoir plus sur cette ressource...
 

Pièces jointes

  • new calendar 2019.xlsm
    72 KB · Affichages: 82
Dernière édition:

patricktoulon

XLDnaute Barbatruc
patricktoulon a mis à jour collection fausse boite de dialogue (Patricktoulon) episode 1 un vrai faux calendrier avec une nouvelle version :

modele entièrement repensé

Version.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 /...

Lire la suite de cette mise à jour...
 

patricktoulon

XLDnaute Barbatruc

Pièces jointes

  • new calendar 2019-2020.xlsm
    57 KB · Affichages: 30
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Patrick

Sans prétention aucune lol
j'ai pensé a cette adaptation
j'ai mis le Min du SpinButton des mois à 0 et le Max à 13
on peut ainsi Faire défiler les mois en avant et en arriéré avec passage a l’année suivante ou précédente, à voir !
VB:
'événement combo et spinbutton(month/year)
Private Sub SpB_Mois_Change()
  Select Case SpB_Mois
         Case SpB_Mois.Min ' 0
SpB_Annees = SpB_Annees - 1 'On enlève une année
SpB_Mois.Value = 12  'On mets le Mois a 12 Décembre
Cbmonth.ListIndex = SpB_Mois - 1 'On ajuste le mois
         Case SpB_Mois.Max '13 après décembre
SpB_Mois.Value = 1 'On mets le Mois a 1 Janvier
Cbmonth.ListIndex = SpB_Mois - 1 'On ajuste le mois
SpB_Annees = SpB_Annees + 1
         Case Else
Cbmonth.ListIndex = SpB_Mois - 1 'On ajuste le mois
  End Select
End Sub
Private Sub SpB_Annees_Change()
    Cbyear.Value = SpB_Annees.Value 'On ajuste l'année
    Cbmonth.ListIndex = IIf(SpB_Annees.Value = Year(Date), Month(Date) - 1, 0) 'On affiche le Mois selon l'année
    SpB_Mois.Value = Cbmonth.ListIndex + 1 'On ajuste au mois
End Sub
As tu vu mon message concernant la Boucle sans module de Classe
jean marie
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Bonjour tout le monde,

Beau travail !

juste un oubli qui cause une erreur de variable non définie, il manque Dim T# ici '<<<<<<<

'appel avec coordonnée et region
Public Function ShowTopLeft(Optional Side As Long = 2, Optional top As Long = 0, Optional optionRegionale As Long = 1000)
Dim Forme, T# '<<<<<<<<<<

par contre je vais étudier l'histoire du mappage des boutons jours dans Clavier() avec WithEvents

bonne journée.
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
bonjour,

effectivement j'ai vu ça et ça raccourci pas mal les codes !
mais tout en étant efficace, c'est tout de même assez perturbant quand on ne maîtrise pas ce type de déroulement !?
par exemple à chaque instruction il faut mettre Calandar. ... et avec les variables c'est pas simple car certaines ne sont plus reconnu !?
tu vas me répondre qu'il n'y en a plus besoin, mais franchement ce n'est pas évident du tout.

par curiosité j'ai modifié sur le mien et ça fonctionnait, mais de la manière que je l'utilise ça ne me convient pas du tout,
car il faut savoir que j'ai apporté beaucoup de modifications suite à des demandes du forum, des constantes modifiables
ce qui a allongé passablement le code au fil du temps, mais c'est aussi ce qui fait sa souplesse
exemple:
Const AffMoisPrecedentSuivant = True ' False)aff.mois sélectionné True)avec précédent+suivant
Const NoDuPremJourSem% = 1 ' 1)Lundi à 7)Dimanche
Const SensDuCalendrier$ = ">" ' >)Gauche>Droite(classique) <)Gauche<Droite
Const PlacementCalendrier% = 2 ' 1)à droite 2)en dessous de l'objet
Const FormatDateUserSurCell = False ' True)format ci-dessous appliqué sur cellule False)Non
Const FormatDateUser$ = "dd/mm/yyyy" ' "dd/mm/yyyy" ou "yyyy/mm/dd"
Const PaysJourFeries$ = "France" ' choix du pays pour les jours fériés
'Const PaysJourFeries$ = "Belgique" '
'Const PaysJourFeries$ = "Quebec" '
'Const PaysJourFeries$ = "Genève" '
'Const PaysJourFeries$ = "Canada" '

et aussi avec dates min/maxi à saisir, le calendrier limite le choix selon ces deux dates !
et tout ça serait perdu !
en tout cas chapeau, pour saisir une date sans plus de complication ça peut suffire !
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour Roland
c'est normal qu'il soit non reconnu

je répète ce que je t'ai déjà dit il me semble

quand tu est dans l’événement click du bouton ou fonction showx ou fonction appelé par celle ci tu est dans une instance du module classe calendar EXACTEMENT de la même manière qu'avec un module classe

ailleurs tu est dans l'userform calendar

c'est la nuance qu'il faut saisir
c'est juste une histoire d'instance de module a saisir ;)


je rappelle que le projet était de faire un calendrier complètement autonome et (transportable, importable,exportable)sans module ou classe attaché

dans les modules classe tu utilise une variable pour ton userform la j'utilise le nom mais je pourrais aussi utiliser une variable j'ai pensé laissé comme ca pour une compréhension plus facile

après pour date min/max je sais pas de quoi tu parle tu mélange ton projet et le mien je crois ;)
mon projet était de remplacer le control calendrier tel que ceux natif pour les versions excel 32 bits
je pense avoir atteint mon but ;)

pour ce qui est des choix
le placement bon ca je vais pas en parler tu a participé a la discussion il suffit d'injecter l'object ou il doit être placé ( cellule ou control)
pour le format j'ai fait plus simple et c'est fonctionel c'est l'argument optionregional 0 ou 1 ou 2 qui sont les index de application.xldateorder (US,FR,CA)QUE GERE PARFAITEMENT EXCEL

pour les jours fériés il sont justement choisis en fonction de l'argument option_regionale 0 ou 1 ou 2

il sera facile a quiconque qui comprendra bien mon module userform d'ajouter un pay pour les jour fériés

je te laisse encore un peu le décortiquer tu n'a pas tout saisi visiblement ;)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick, Bonjour Roland, Bonjour le Forum,

Actuellement, j'utilise pour mes fichiers de prospection le calendrier de Roland_M (encore un grand merci à toi pour ça;)).
Ce calendrier fonctionne parfaitement.
Mais, pour moi toujours novice en vba, il est compliqué. D'ailleurs Roland doit se souvenir (et pour longtemps LOL), de toute la difficulté
que j'ai eu à le faire fonctionner sur mes fichiers. Ce n'est que grâce à sa technicité, sa patience et sa gentillesse que j'ai pu m'en servir.
J'ai bcp de difficultés à le modifier quand le besoin s'en fait sentir.
Notamment quand je dois modifier le code pour qu'il soit opérationnel sur une nouvelle feuille ou d'une façon différente.
Toutefois, il est installé sur mes fichiers, il fonctionne et il va y rester LOL.

J'ai de nouveaux fichiers sur lesquels je dois installer un calendrier sur plusieurs feuilles.
Me souvenant (moi-aussi LOL) des difficultés rencontrées précédemment, je me suis mis en recherche d'un nouveau calendrier du niveau de celui de Roland mais plussssss à ma portée.

Et voilà que Patrick s'y met et nous fait lui aussi un super calendrier :)
Patrick, ton calendrier m'intéresse car plusss à ma portée ....
Toutefois, je me suis permis d'y apporter un ajout que j'ai importé du calendrier de Roland , Je lui ai demandé l'autorisation au préalable :)
Cela concerne la saisie des heures et je pense (en espérant que tu penseras comme moi), que c'est un complément intéressant pour ton calendrier.
Je joins le fichier test qui contient 3 feuilles :
- Cal_Patrick,
- Cal_lionel,
- Demandes de modifs,

Ce serait super si tu pouvais répondre à mes demandes :)
Merci Patrick :)
Encore merci Roland pour ton calendrier qui m'a permis de travailler depuis plusieurs années et que je garde dans mes fichiers actuels.
Bonne fin de journée à toutes et à tous,
Amicalement,
lionel,
 

Pièces jointes

  • new calendar version 2019-2020 V.4.1.1.1.xlsm
    189.6 KB · Affichages: 37

Roland_M

XLDnaute Barbatruc
Bonjour,

Je ne comprend toujours pas ce qu'il y a de si compliqué pour saisir une date sur cellule !?

On passe au calendrier la Date déjà présente sur la cellule sinon c'est la date en cours. C'est simple, non !?
fmSTD_Calendrier.SelectDateCELL1 IIf(IsDate(Target), Target, Date)
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Bonsoir,

j'ai tout de même jeté un oeil, et ce que je comprend pas c'est que mon calendrier permet 90% de tes souhaits
et qu'il possible de régler les 10% restant !

et toi tu veux en changer car c'est trop compliqué pour toi !?
ce n'est pas compliqué c'est simplement qu'il y a des options qui permettent cette souplesse et toi tu n'y piges rien !


Alors . . .

Saisie heure du RdV:
? En remplacement du clic sur "OK", est-il possible clic sur la "X" pour sortir avec validation la saisie heure ?
> c'est fait, mais je ne trouve pas très logique de cliquer sur Annuler pour confirmer !? (c'est une histoire belge)

? Je n'ai pas réussi à faire en sorte, que comme ton calendrier, l'UF des heures s'affiche près de la cellule cliquée
> c'est fait

Calendrier:
? Retour direct sur "aujourd'hui" si déplacement loin dans le calendrier
> mon calendrier effectue déjà cela

? Sélection date à l'affichage du calendrier, à l'ouverture, le calendrier se positionne sur aujourd'hui
il permet de sélectionner une date dès le 1er jour du mois affiché
> mon calendrier effectue déjà cela, sauf quand il y a déjà une date dans la cellule c'est elle qui prime !

? J'aurais besoin d'avoir un blocage "par défaut", ne permettant pas de sélectionner une date avant aujourd'hui
> mon calendrier effectue cela, il suffit de se servir de Date Min/Max

? Dans notre boulot, nous avons une particularité qui nous oblige à sélectionner des dates "avant aujourd'hui
Selon plage de cellules j'aurais besoin de pouvoir sélectionner des dates "avant aujourd'hui"
> alors là il va falloir que tu dises quelles sont les endroits où il faut une date libre et où il faut une date min/max !?

? Dans mon cas, nous savons qu'un RdV au-delà de 2 mois ne fonctionne jamais. Ce n'est donc que du temps perdu de prendre un RdV au-delà.
J'aurais besoin de pouvoir paramétrer de la Date Mini à la Date Maxi "cliquable" : selon plage de cellules
> possible Date Min/Max +60 pour avoir les deux mois . . . voir la question précédente !?


Je finirai cela d'ici qq jours car en ce moment je suis malade !

pour l'instant il me faudra les réponses à ceci:
que tu dises quelles sont les endroits où il faut une date libre et où il faut une date min/max !?
noms des feuilles et les champs !? j'espère qu'il n'y en pas une quantité trop importantes !?
 

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo