Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 13/05/2008
Messages:
14
|
Posté le : 13-05-2008 13h12
Bonjour à tous, après ce bon week-end de 5 jours, j'espère que tout le monde est en forme :P
Déjà merci et bravo pour la magnifique application qu'est mDF_Calendar, je vous explique mon problème, J'ai téléchargé et installé la macro complémentaire mDF_Calendar pour Excel 97, et j'aimerais l'adapter à mon classeur Excel. J'ai déjà effectué quelques modifications qui sont les suivantes : - J'ai supprimé le fait que lorsqu'on clique sur une date, ça l'inscrit dans la cellule active - J'ai fait en sorte que lorsque je clique sur une date, ça me la sélectionne dans mon classeur Excel (si je clique sur le 12 mars, ça va directement dans l'onglet MAR et ça sélectionne le 12 mars) Bon je suis plutôt fier de ce que j'ai fait pour le moment mais j'aimerais aller un peu plus loin, seulement je n'y arrive pas, j'aimerais que lorsque je clique sur une date dans le calendrier, elle se mette en surbrillance (comme lorsque l'on passe la souris sur une date) et qu'elle reste en surbrillance, de même lorsque je clique dans mon classeur Excel sur le 12 mars, je veux que dans le calendrier, le 12 mars soit en surbrillance. Pouvez-vous m'aider ? En gros, j'aimerais savoir quelle est la commande qui permet de mettre en surbrillance par exemple le 17 juillet sur le calendrier :P J'espère que ma question n'est pas trop indiscrète et que j'ai bien le droit de modifier un petit peu votre macro :bof: Merci !! Voilà les deux fichiers joints : - - Je supprime ces liens externes (voir ci-dessous) et j'attache ces mêmes fichiers "zippés" directement en pièces jointes au présent post. Pour info, j'ai épuré le fichier.xls des Userforms qui n'ont rien à voir avec la situation présentée et sont donc inutiles ici... J'en ai également profité pour supprimer le mot de passe d'accès au projet mDF Calendrier v2.2, afin de permettre à chacun de suivre cet échange... Le Webmaster [hr] Note du Webmaster : Les forums de discussions du présent site permettent de joindre un (ou plusieurs fichiers) avec chacun de vos posts. Chaque fichier peut être zippé pour passer en dessous des 80 ko maximum autorisés. Pour rappel : [list] [*]Windows XP et Vista permettent de compresser vos fichiers sous format Zip sans avoir recours à un logiciel tiers : dans l'explorateur Windows, faites un clic droit sur votre fichier .xls et choisissez dans le menu contextuel "envoyé vers", puis "Dossier compressé". [*]Un fichier de 80 ko zippé, c'est un fichier Excel d'environ 450 ko d'origine ! Ce qui est tout de même largement suffisant pour exposer correctement un problème sur un forum de discussions... Au delà de ce poids, on peut imaginer que le problème relève plus d'un travail a effectué par un prestataire de services que d'une situation a soumettre dans un forum... Si votre fichier zippé dépasse ce poids maximum de 80 ko, alors reprennez-le et épurez-le à l'essentiel du problème ! [*]Par ailleurs, en vous encourageant à joindre vos fichiers directement attachés à vos posts, je m'assure aussi de la pérennité des informations du présent espace d'échanges. Que deviendrait un fil de discussions si les fichiers liés disparaissaient d'une façon ou d'une autre ? Sans doute ne voudrait-il plus rien dire...[/list] Merci de votre compréhension. Pièce jointe:
fichier.zip [ Taille: 59.25 Ko - Téléchargements: 700 ] mDF_Calendrier22.zip [ Taille: 25.19 Ko - Téléchargements: 679 ]
Edité par Hadidman le 21/05/2008 22:42:36
|
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 13-05-2008 22h17
Bonsoir Hadidman et bienvenu sur mDF XLpages.com !
Tout d'abord, merci du compliment. Je commence par une petite précision pour éviter toute confusion : il s'agit là du mDF Calendrier v2.2 (à ne pas confondre avec le mDF XLcalendar qui correspond à la toute dernière version de cet utilitaire et dont le projet VBA n'a pas été mis à disposition). Même si je n'ai pas compris la globalité de ce que tu cherches à faire avec ce calendrier, je puis quand même te proposer les modifications suivantes à faire sur les deux fichiers pour répondre à ta demande : Dans le projet VBA de ton fichier nommé "fichier.xls", j'applique le code suivant : DANS LE MODULE DE CODE DE L'OBJET THISWORKBOOK :
Option Explicit
Que fais ce code ? A chaque changement de sélection de cellule, j'analyse le contenu de la cellule en cours. Si cette cellule contient une date, alors je copie cette date dans la cellule "B1" de l'onglet "Prefs" du classeur mDF Calendrier22.xla (la macro complémentaire). Je déclenche ensuite l'ouverture du calendrier (procédure mDFcalShow du fichier .xla). J'apporte ensuite les modifications suivantes au projet VBA du mDF Calendrier22.xla : DANS LE MODULE DE CODE DU USERFORM "mDFcalendrier", procédure UserForm_Initialize(), je commente (ou supprime) les lignes comme ci-dessous (en vert) :
...
Ceci permet de désactiver l'option : Afficher mois en cours à l'ouverture Ensuite j'ajoute le code suivant dans la procédure MAJCalend() (voir zone commentée en vert) :
Private Sub MAJCalend(D As Date)
L'ensemble de ces modifications devrait permettre d'obtenir ce que tu sembles vouloir : afficher le calendrier automatiquement et mettre en évidence le jour correspondant à la date sélectionnée dans ton classeur. J'ajoute que j'ai toujours eu comme un pincement au coeur en voyant une de mes applications détournée de son travail d'origine. Pour être franc, jusqu'à ce jour, j'ai d'ailleurs toujours refusé de participer à un quelconque de ces détournements... Mais j'ai volontairement laissé le code VBA disponible pour ces versions et donc je n'interdis en rien, chacun de faire ce qu'il en veut (ou presque ! Pas d'application commerciale par exemple et laisser ma signature et les commentaires originaux dans le code VBA). Ainsi, permets moi de te laisser tester et mettre en oeuvre ce qui précède, en te souhaitant bonne continuation pour la suite de ton projet... En espérant t'avoir aidé... Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 13/05/2008
Messages:
14
|
Posté le : 14-05-2008 00h18
Bonjour à vous,
Déjà un énorme merci pour votre réponse, qui est extrêmement clair, précise, détaillée... enfin on ne peut pa faire mieux et je vous remercie énormèmement pour le temps que vous avez pris pour moi pour me répondre ! Je suis désolé si je me suis mal exprimé dans mon premier message, j'ai essayé votre code, seulement il n'effectue pas les actions recquises, ce qui m'étonne puisque le code m'avait l'air juste (je ne doute pas qu'il soit juste bien entendu lol) Je désire : - Laisser le calendrier tout le temps sur le côté droit de la feuille Excel, pour cela j'ai adaté votre code sur la feuille "ThisWorkBook" en faisant ceci :
Option Explicit
- La désactivation de l'option sur les mois est une très bonne idée, merci :D - Il reste le fait que lorsque je clique sur le calendrier sur une date, elle reste en surbrillance même si je déplace ma souris sur une autre date, en fait votre macros, ce qu'elle fait (on dirait que je vous explique comment marche votre marco ) ), elle mets en surbrillance le numéro du jour lorsque la souris passe dessus, ce que j'aimerai faire, c'est lorsque j'ai cliqué sur une cellule d'Excel (par exemple le 12 mai) et bien dans votre calendrier, le chiffre 12 (du mois de mai bien sur :mind: ) se mette en surbrillance. J'espère que j'ai bien expliqué cette fois En tout cas cette ligne de code me semblait résoudre le problème :
If V = Day(D) Then
En tout cas je voulais vous remercier une nouvelle fois pour votre gentillesse et de me laisser le droit et surtout de m'aider à modifier votre macro, ne vous en faite pas, ce n'est pas du tout à but commercial (je suis étudiant :P) et je laisse bien entendu votre signature (sur le calendrier et dans la macro Excel), je ne me permettrais pas ! En attendant votre réponse, encore une fois un énorme MERCI ! Bonne soirée. |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 14-05-2008 02h59
Re,
Es-tu sûr d'avoir apporté toutes les modifications indiquées ? Et je pense notamment au code à mettre dans le module de code ThisWorkbook dans ton classeur xls (et non ce que tu indiques avoir mis dans la procédure Workbook_SheetSelectionChange) ? L'ouverture constante du calendrier est un autre problème qui peut se régler autrement... Chez moi, ça semble fonctionner pourtant... - Un clic dans une cellule contenant une date, le calendrier s'affiche sur le bon mois et le bon jour est surligné. - Un clic sur une cellule ne contenant pas de date et le calendrier disparaît (on peut revoir la chose autrement sur ce point). Bon, je regarderai à nouveau demain soir... Mais vérifies quand même STP et dis-moi. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 13/05/2008
Messages:
14
|
Posté le : 14-05-2008 09h21
Bonjour,
Je viens de réessayer et ça fonctionne ) J'ai du supprimer une ligne en fait et c'est pour cela que ça ne marchait pas Alors, quand je clique sur une date (sur le classeur Excel), j'ai bien le chiffre qui se mets en surbrillance dans votre calendrier. Le problème, c'est que lorsque je passe ma souris sur ce calendrier, la surbrillance disparait automatiquement, et donc lorsqu'à partir du calendrier, je clique sur un chiffre (il est en surbrillance) mais je bouge la souris d'un millimètre et la surbrillance disparait En fait, je pense qu'il faudrait désactiver la surbrillance au passage de la souris (je vais chercher un petit peu dans votre code, pour voir comment désactiver cela ) Sinon un autre problème, lorsque je clique sur une date (sur le classeur Excel), le calendrier apparait, mais il apparait au milieu de la feuille, alors que j'aimerais qu'il reste tout le temps dans le coin en haut à droite de la feuille. Est-ce possible de modifier cela ? Merci à vous ! |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 14-05-2008 22h35
Bonsoir Hadidman, le Forum,
Citation :
Humm... j'avais bien compris ça oui... tu me rassures lol ! Citation :
Eh bien, finalement, tu ne veux plus garder grand chose de ce calendrier... :mind: Désactiver la surbrillance au passage de la souris, c'est facile, il te suffit de commenter ou supprimer la procédure ci-dessous dans le module de classe mDFcalClass :
'Private Sub lblJGroup_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Mais comme je te vois venir... tu vas t'apercevoir que la surbrillance du jour J n'est plus géré correctement si tu navigues ensuite entre les mois du calendrier (par les 2 boutons latéraux en forme de triangle)... j'ai donc également modifié la procédure MAJCalend() comme suit :
'Ajout d'un argument optionnel "Surligne" à la procédure MAJCalend
MAJCalend .Range("B1"), True
Et donc, maintenant, ton calendrier fonctionne correctement dans les deux sens : [list] [*]un clic sur une date dans la feuille de calcul affiche le calendrier et met le jour en surbrillance. [*]et à l'inverse, un clic dans le calendrier et c'est la sélection sur feuille de calcul qui se déplace au bon endroit. [/list] Citation :
Toujours dans l'évènement Initialize() du Userform, je modifie le code comme suit :
' Placer le calendrier en haut et à droite =========================
Et pour que tout ça te paraisse plus clair, tu trouveras ci-joint la .xla intégrant l'ensemble de ces modifications et le fichier.xls qui va avec. Si tu penses que la question d'origine de ce fil de discussions est résolue, merci de solder le présent sujet. Je pense que je vais te laisser continuer la suite de ton projet seul maintenant. En cherchant un peu, tu devrais pouvoir te débrouiller je pense... (Je te l'ai dit plus haut : dépecer cette application comme ça, pour moi, c'est une torture... ) Bonne continuation, Cordialement, Pièce jointe:
fichier2.zip [ Taille: 61.95 Ko - Téléchargements: 663 ] mDF_Calendrier22 (modifi).zip [ Taille: 37.43 Ko - Téléchargements: 749 ] Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 13/05/2008
Messages:
14
|
Posté le : 14-05-2008 23h08
Vraiment... je ne sais pas comment te remercier, c'est extraordinaire, merci milles fois !
Je suis désolé si j'ai "détourné" la calendrier de son utilisation d'origine (mais je suis un mec comme ça moi :P) En tout cas, il fait exactement ce que je voulais et je t'en remercie, ne t'inquiète surtout pas je laisse les copyright, signatures etc... Une dernière question et après je vous laisse tranquil, vu que la macro ne se lance pas automatiquement au démarrage d'Excel (et que justement je ne veux pas qu'il fasse ça car ça cause des bugs lorsqu'on doit accepter les macros etc...), je peux créer une instrution du type :
Sub ouverture()
Merci encore ! |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 14-05-2008 23h32
Re,
Oui bien sûr, tu peux créer un bouton ActiveX de la barre d'outils VBA ou un objet Dessin ou Formulaire et lui associé ta macro pour ouvrir le calendrier. Mais tu vas te confronter à un problème supplémentaire : le calendrier va s'ouvrir sur la dernière date utilisée précédemment... ce qui risque d'être un peu perturbant... (on ne peut pas tout avoir !) J'avoue que je ne comprends plus vraiment ton objectif, si tu installes le mDF Calendrier (qui, je le rappelle est une macro complémentaire .xla faite pour ça), alors tu n'as pas à lancer le calendrier manuellement ni à activer ses macros à l'ouverture d'Excel, elle le seront d'office. Par ailleurs, une fois installé, avec le code que tu as mis dans le ThisWorkbook de ton classeur.xls, le calendrier va s'afficher automatiquement dès la première sélection d'une date sur la feuille. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 13/05/2008
Messages:
14
|
Posté le : 15-05-2008 00h46
Oui je crois que vous avez raison et que je vais laisser comme tel, c'est à dire que le calendrier s'affiche lorsqu'on clique sur une date, mais, est-il possible de faire en sorte que lorsqu'il est affiché, il ne disparaisse plus jamais avant la fermeture du document Excel ?
Ne vous cassez pas la tête je regarde ça tranquillement demain matin, ce ne doit pas être compliqué, et je vous dirais si j'ai réussi :)) Je vous souhaite une bonne soirée et encore un énorme merci pour votre travail et votre gentillesse ! |
|
|
Re: Adapter le mDF_Calendar | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 15-05-2008 01h07
Ok, la solution est très simple en fait, c'est dans ton classeur.xls que ça situe cette fois...
Dans le module de code de l'objet ThisWorkbook de ton fichier.xls, il suffit simplement de déplacer la ligne de code :
Application.Run ("mDFcalHide")
Option Explicit
Il te suffit ensuite de lancer cette même ligne de code (et celle là uniquement) pour refermer le calendrier quand tu le souhaites... Je te remercie de bien vouloir clore le présent fil de discussions en préfixant le sujet par [résolu] : voir ce lien. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
Qui consulte actuellement ce sujet ?
2 Utilisateur(s) anonymes