XL 2016 Macro sélection date départ

MORISS

XLDnaute Junior
Bonjour,

Je viens vers vous car je souhaiterais savoir s'il existe une macro qui ajoute à chaque cellules de catégorie date (01/01/2016) une sélection de date de départ automatique.

Merci d'avance pour votre aide

Bien cordialement
 

MORISS

XLDnaute Junior
Bonjour,

Merci pour votre retour,

J'ai tester, mais il me donne une erreur de compilation Then ou GoTo

J'ai mis :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Target(1, 1)
If Target Address = "$A$1" Then Exit Sub
If Target.NumberFormat Like "*y*" Then
UFmCalend.Posit Target, 0, 1
Target.Value = UFmCalend.Saisie("", Target.Value, Date)
End If
End Sub

Merci d'avance

Cordialement
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Dranreb,
Bonjour à toutes et à tous,

Très intéressé par votre calendrier, je me permets de m’immiscer dans votre fil. Si je dérange, dites-le moi et j'ouvrirai un autre fil.

J'ai quelques questions et je n'arrive pas à trouver les réponses après recherches et tentatives de modification de votre code :

- Si on ferme votre calendrier sans sélectionner de date, il sélectionne automatiquement la date du jour,
- au clique sur une cellule, le calendrier s'ouvre en sélectionnant la dernière date sélectionnée et validée,
- Après avoir quitté le classeur, si on était sur une cellule "formatée date", à l'ouverture suivante, le calendrier s'ouvre directement,
- Petite cerise, mais important pour moi : est-il possible de borner la sélection de date ?

Dans le classeur joint, je pense que je suis plus explicite LOL.

Voilà beaucoup de questions d'un seul coup LOL.
Peut-être pourrez-vous m'expliquer comment faire ?

Avec mes remerciements pour votre aide toujours précieuse,
Bon dimanche à toutes et à tous,
Amicalement,
Lionel,
 

Pièces jointes

  • MonCalenMORISS.xlsm
    193.1 KB · Affichages: 53
Dernière édition:

Dranreb

XLDnaute Barbatruc
MORISS: Excuses, il manque un point: Target.Address

arthour973: Ces réactions dépendent des paramètres indiqués à UFmCalend.Saisie. En l'occurrence DInit:=Target.Value, Défaut:=Date
Rien n'empêche de récupérer la valeur retournée par cette méthode dans un Variant, puis de le traiter, au lieu de l'envoyer directement dans Target.Value
UFmCalend n'est équipé d'aucun dispositif visant à empêcher la spécification de certaines dates.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Merci Danreb,
Vous êtes super :)
Je ne sais pas par où commencer et ne connassant pas vraiment VBA, quand j'ai des réponses j'essaie d'analyser les codes pour tenter de comprendre (je ne parle pas l'anglais en plus LOL)

Vous m'avez indiqué :
"Ces réactions dépendent des paramètres indiqués à UFmCalend.Saisie. En l'occurrence DInit:=Target.Value, Défaut:=Date
Rien n'empêche de récupérer la valeur retournée par cette méthode dans un Variant, puis de le traiter, au lieu de l'envoyer directement dans Target.Value
UFmCalend n'est équipé d'aucun dispositif visant à empêcher la spécification de certaines dates."

J'ai tenté de partir de ces indications mais je ne comprends pas.
Et là, je ne sais que vous dire.
Amicalement,
Lionel,
 

Dranreb

XLDnaute Barbatruc
Alors qu'avez vous tenté ? Ou que voulez vous faire ?
Il y a aussi des commentaires explicatifs d'utilisation de chaque méthode dans UFmCalend
Information: comme partout si les noms de paramètres ne sont pas indiqués devant ":=" c'est l'ordre positionnel qui est considéré. MonVariant = UFmCalend.Saisie(Titre, DInit, Défaut)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re,

Je ne sais pas vous dire avec précision mais j'ai tenté de voir ou je pourrais modifier votre code, pour chacune de mes observations.

Sois je n'ai pas trouvé ou pas réussi car pas compris ce qu'il fallait remplacer.

- Si on ferme votre calendrier sans sélectionner de date, il sélectionne automatiquement la date du jour,
Je souhaite qu'il ne mettre pas de date.

- au clique sur une cellule, le calendrier s'ouvre en sélectionnant la dernière date sélectionnée et validée,
Je préférerais qu'il sélectionne le jour d'aujourd'hui,

- Après avoir quitté le classeur, si on était sur une cellule "formatée date", à l'ouverture suivante, le calendrier s'ouvre directement,
Il faudrait que le calendrier ne s'ouvre pas à l'ouverture du classeur,

- Petite cerise, mais important pour moi : est-il possible de borner la sélection de date ?
Par exemple :
- pas pouvoir sélectionner avant une date de début paramétrée,
- pas pouvoir sélectionner une date supérieure à la date maxi sélectionnée,

Ce qui serait bien, si vous voulez bien et si vous avez un peu de temps, ce serait de me donner les modifications à faire et, comme à l'habitude, je tente de comprendre .... Ou alors, peut-être de me diriger plus précisément.

Quoiqu'il en soit, je vous remercie de vous êtes intéressé à mes questions.
Amicalement,
Lionel,
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Si on ferme votre calendrier sans sélectionner de date, il sélectionne automatiquement la date du jour
Non il renvoie la valeur spécifiée comme paramètre Défaut (c'est le 3ième)
Avec vous regardé l'explication à la méthode Saisie ?
au clique sur une cellule, le calendrier s'ouvre en sélectionnant la dernière date sélectionnée et validée
Seulement si le paramètre DInit (le 2ième) ne contient pas une date valide ou s'il n'est pas spécifié.
Après avoir quitté le classeur, si on était sur une cellule "formatée date", à l'ouverture suivante, le calendrier s'ouvre directement
Selectionnez une autre cellule à la fin peut être. Ou arrangez vous d'une façon ou d'une autre pour que la Worksheet_SelectionChange ne s'exécute pas à l'ouverture du classeur. C'est d'ailleurs curieux qu'elle s'exécute…
Petite cerise, mais important pour moi : est-il possible de borner la sélection de date ?
Il est possible d'exécuter le code en boucle tant que la date saisie n'est pas dans un certain intervalle. Ou bien assumer la date mini si saisie plus précoce ou la maxi si plus tardif. Ou les deux: ressaisir en proposant le mini ou le maxi selon le cas comme second paramètre.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir Danreb,

Je planche LOL ..... et, pour vous répondre : j'avais déjà lu et relu votre codes et explications bien évidemment.

Je viens de passer un bon moment pour tenter de comprendre.
Je ne comprends toujours pas après d'autres tentatives.

Un code en réponse à étudier pour comprendre m'aurait permis d'avancer car je comprends mieux quand je peux tester un code qui fonctionne.
Mais chercher une solution alors que je ne connais pas vba et que je ne comprends pas l'anglais n'est qu'échec pour moi.

Je laisse donc tomber mes demandes.

Merci de m'avoir accordé de votre temps.
Amicalement,
Lionel,
 

Dranreb

XLDnaute Barbatruc
Un code en réponse à étudier pour comprendre m'aurait permis d'avancer car je comprends mieux quand je peux tester un code qui fonctionne.
Il aurait déjà fallu que je sachiasse (?) ce que vous eussiez voulu qu'il fit. Vous avez seulement dit ce qu'il ne devait pas faire mais pas ce qu'il devait faire.
À titre d'exemple en intervertissant les deux derniers paramètres, c'est à dire en mettant
Target.Value = UFmCalend.Saisie("", Date, Target.Value) bon il n'y a toujours pas de titre dans la fenêtre du calendrier, mais il propose toujours la date du jour et si on quitte sans valider il met ce que la cellule contenait déjà.
 

Discussions similaires

Réponses
26
Affichages
426

Statistiques des forums

Discussions
312 370
Messages
2 087 696
Membres
103 642
dernier inscrit
nolem