Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Jour et N° du jour suivant date

Ternoise

XLDnaute Occasionnel
Bonjour à tous
Dans TextBox1 j'ai une date.
J'aimerais récupérer dans TextBox2, le jour correspondant (Lundi, Merdi, etc...) et dans TextBox3 le N° du jour (1er, 2ème, 3ème, 4ème, 5ème) jour du mois

Ex : Le 25/12/2019 c'est un mercredi (TextBox2) et le 4ème (TextBox3) du mois

Joyeux Noël !

David
 

Ternoise

XLDnaute Occasionnel
Re
Bien compris pour le nom du jour dans TBxJour. Je ne pensais pas qu'avoir cette information supplémentaire pouvais perturber les macros.
Concernant votre calendrier qui est plutôt sympa, c'est tout a fait normal que je l'utilise puisque vous m'aidez dans mon projet.

J'ai adapté dans mon projet et TBxJour fonctionne nickel. J'ai remplacé les deux autres TestBox par des Labels !

Comme vous pouviez vous doutez, maintenant que les informations arrivent au format Date dans les Combos, ça plante !
Si j'ai bien compris, les données de la base n'étant pas au format Date, ça ne peux pas fonctionner.

Si c'est cela et afin d'éviter de tout refaire, existe-t-il une solution pour "convertir" un jour (format Date) ou jour (format Texte) ?

Encore merci de l'aide
Bien cordialement
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Je ne vous suis pas bien. Les lignes dans la BD n'étant apparemment pas attachées à des dates précises, il n'y a peut être pas lieu de les enregistrer sous forme de dates. Tout au plus pourrait-on réfléchir à les ranger sous forme de nombre plutôt que de textes. Ça permettrait notemment d'avoir les noms des jours par ordre dans la semaine plutôt que par ordre alphabétique.
Pour l'instant j'ai continué d'après la base telle qu'elle était, en supposant le CBxLCtlA.xlam installé.
 

Pièces jointes

  • Temp.xlsm
    79.6 KB · Affichages: 3
Dernière édition:

Ternoise

XLDnaute Occasionnel
"...Ça permettrait notamment d'avoir les noms des jours par ordre dans la semaine plutôt que par ordre alphabétique."
Pourquoi pas. Je me demandais pour un tel affichage !

"...en supposant le CBxLCtlA.xlam installé."
Je ne l'ai pas encore sur mon PC et je vais diffuser cette feuille à pas mal de personnes donc je pense qu'il faut éviter de faire installer une référence !
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Ne manquez pas de me communiquer régulièrement le classeur dans son état d'avancement, que je puisse vérifier si les fonctionnalités des objets CL et CA sont correctement utilisées. Pour que dans la liste les noms des jours soient montrés dans leur ordre dans la semaine, il serait un peu plus commode que l'information soit codée dans une seule colonne dans la base, par un nombre compris entre 0 et 34.
0 ⟹ le 1er lundi, 34 ⟹ le 5ième dimanche. On peut aussi faire de 1 à 35 si vous préférez.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai l'impression que vous n'avancez guère.
Alors je joins une version où moi j'ai avancé, et un utilitaire pour fabriquer des UserForm.
 

Pièces jointes

  • Temp.xlsm
    212.4 KB · Affichages: 4
  • GénérateurUFm.xlsm
    453.9 KB · Affichages: 5

Ternoise

XLDnaute Occasionnel
Bonjour
Désolé, je n'ai pas eu beaucoup de temps ce we !

Bon j'ai regardé longuement vos derniers fichiers envoyés et notamment le générateur d'USF. Merci beaucoup.
Malheureusement, mon niveau est vraiment très très très bas et je ne comprend rien aux lignes de code CL - CA...etc

Avant ce classeur, je n'avais plus ouvert de VBA depuis 2 ou 3 ans et déjà à ce temps, je faisais avec des lignes très simple !

Quand j'essai de créer un classeur qui peux me faire gagner du temps, j'essai de trouver un fichier qui ressemble à mon projet et je le modifie comme je peux et quand je coince, je demande à ce forum ! (certainement comme beaucoup de monde !)

Concernant mon classeur, j'ai repris l'ancienne version récupérée dans la poubelle !

J'ai réussi à contourné le problème du nom et numéro du jour (2ème Lundi, etc...) en ajoutant un TexBox de "saisie intuitive" qui recherche dans la base les mots saisies dans celui-ci. donc en saisissant "2ème Lundi", la listBox est "filtrée" avec cette recherche. (encore une idée d'un fichier trouvé !)

Je pense que mon classeur est pratiquement fini pour l'utilisation que j'espéré. De toute façon, mon niveau en VBA me limite fortement. (J'ai plus 20 ans depuis longtemps !)

Maintenant quand je regarde l'utilisation, la mise en forme, etc...de VOTRE classeur, ça me parait génial et je comprend que vous êtes un pro en programmation.

Croyez bien que je reste super intéressé par vos idées et vos fichiers. J'essai de comprendre (à mon rythme !)

Encore merci de votre patiente et votre dévouement

Bien cordialement

David
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il y a des informations dans la feuille d'aide de la ressource indiquée au #11. Chaque méthode, propriété ou évènement des objets ComboBoxLiées et ControlsAssociés y fait l'objet d'une explication.
S'il y a des choses qui ne sont pas tout à fait claires vous pouvez toujours me demander des précisions.
 

Ternoise

XLDnaute Occasionnel
Bonjour.
Merci pour votre compréhension ! Je regarderais, dans les prochains jours, et en profondeur, cette nouvelle méthode.

Juste deux questions concernant votre calendrier.
1- Quand je ferme mon USF et que je reviens sur ma feuille, et en mettant le curseur de la sourie dans la barre des taches, le calendrier reste toujours affiché !
C'est normal ? !!!

2- Après avoir cliqué sur le TextBox pour ouvrir USF Calendrier, si je décide de fermer avec la croix sans rien sélectionner, le Textbox affiche la date du jour.
C'est possible qu'il laisse le Textbox tel qu'il était ? (En gros, un bouton "Echap" et enlever la croix !)

Merci beaucoup.
 

Pièces jointes

  • Copie écran.jpg
    94.9 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonjour.
1) — Ah non, ce n'est pas normal, et je n'arrive pas à reproduire l'incident. Toutefois il m'est arrivé qu'en affichant l'UserForm par F5 depuis VBE alors qu'un autre classeur était actif, l'affichage du calendrier ne se faisait plus dedans …
2) — C'est un Label en fait. Il contient normalement toujours un texte représentant la date du jour au départ, ou une autre date mise par la suite, alors je ne vois pas bien le problème. La touche Echap quitte le calendrier normalement
J'ai cependant fait quelques modif, alors je joins la dernière version.
 

Pièces jointes

  • Temp.xlsm
    232.1 KB · Affichages: 3

Ternoise

XLDnaute Occasionnel
Re...

Après avoir mis le nouveau calendrier dans mon programme...
Concernant le point 1 :
J'ai essayé sur 3 PC différents, même ""problème"

Concernant le point 2 :
J'ai remplacé ce code

VB:
Private Sub TBxJour_Enter()
   Dim D As Date
   On Error Resume Next: D = CDate(TBxJour.Text): If Err Then D = Date
   On Error GoTo 0
   
With UFmCalend: .Posit TBxJour, 0, 1: D = .Saisie("Jour", D, D): End With
   TBxJour.Text = Format(D, "dd mmmm yyyy")

End Sub

par

VB:
Private Sub TBxJour_Enter()
Dim DInit As Date, DSais
On Error Resume Next: DInit = CDate(TBxJour.Text): If Err Then DInit = Date
On Error GoTo 0

With UFmCalend: .Posit TBxJour, 0, 1: DSais = .Saisie("Jour", DInit, Empty): End With
If IsDate(DSais) Then TBxJour = Format(DSais, "dd mmmm yyyy")

End Sub

et le problème de la touche "Echap" est résolu !

Concernant la progression du programme, je constate que vous avez bien avancé. Si je peux vous aider, n'hésiter pas à me demander !!!
Je n'arrive pas à comprendre toutes ces lignes. Rien que "CL.Nettoyer", je n'arrive pas à l'associer avec du "vrai" code.

Pour info, dans mon programme, "Service" et "lieu" sont des Combos de recherche au même titre que "Rang" "Jour" "Département"

Bien cordialement
 

Dranreb

XLDnaute Barbatruc
Pourquoi gardez vous votre classeur ? Gardez plutôt le mien !
Vous n'avez qu'à chercher 'Nettoyer' dans tout le projet VBA. Comme tous les modules de service y sont, vous tomberez fatalement sur la méthode Nettoyer de l'objet ComboBoxLiées. Mais vous ne devriez pas essayez de chercher ce code. Étudiez plutôt l'aide que j'ai écrite à propos de cette méthode.
Pour Service et Lieu il suffit de remplacer les TBx par des CBx et en confier la charge à l'objet ComboBoxLiées CL au lieu de l'objet ControlsAssociés CA. Aucune modification du reste de la programmation n'est nécessaire.

Édition: Remarque il ne reste plus que l'Atelier et l'Observation qui sont affichés par des contrôles associés. Pour peu que l'Atelier aussi doive pouvoir aussi faire l'objet d'une recherche, ça ne vaudrait plus le coup, pour la seule TBxObserv, d'utiliser un objet ControlsAssociés.
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
544
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…