XL 2019 Remplir plusieurs labels d'un Useform avec les dates d'un calendrier automatique

Clemee61

XLDnaute Junior
Bonjour,
J'ai un fichier Excel dans lequel j'ai crée une fiche d'inscription. Lorsqu'une personne se présente elle donne ses coordonnées que je rempli dans des texteBox et j'ai besoin de mettre une date d'arrivée et de départ. J'ai mis un calendrier automatique qui fonctionne car j'ai repris le travail d'un internaute mais sans le maitriser. J'essai de faire appel à ce même calendrier pour remplir d'autre case (en jaune dans ma fiche). Je ne m'en sors pas.
J'ai essayé de repartir d'autres exemples trouvés sur le forum mais rien y fait. Je suis bloqué depuis une semaine.
Quelqu'un peut-il m'aider ?
Je joins mon fichier avec tout le code (c'est un peu une usine à gaz mais j'ai mis en jaune "pétant" les cases incriminées !)
Cordialement,
Cédric
 

Pièces jointes

  • Inscriptions 2023 H.xlsm
    442.9 KB · Affichages: 31

Clemee61

XLDnaute Junior
pour le format €
plutot que de remplacer les tags, laisse les comme ils sont
mais ajoute ce bout de code dans la module de classe cTextBox
VB:
Private Sub textMonétaire_Change()
    Dim x$, p%
    x = Replace(textMonétaire, ",", ".")
    p = textMonétaire.SelStart - (x = "0") + (x Like "0?*.*") 'mémorise
    textMonétaire = IIf(IsNumeric(Left(x, 1)), Format(Val(x), "0 €"), "")
    textMonétaire.SelStart = p
End Sub
C'est parfait
 

vgendron

XLDnaute Barbatruc
Hello
Je reviens ici pour te montrer ce que j'ai fait pour m'amuser
j'ai modifié l'interface pour permettre de gerer l'ajout/suppression d'enfant :)
tout n'est pas encore opérationnel mais voici le fonctionnement
1) tu lances l'interface
tu vois que les frames Enfants n'existent plus
2) tu sélectionnes le numéro client
3) bouton Aller A ==> les infos sont chargées MAIS NON visible en ce qui concerne les enfants
4) tu cliques sur "Saisie Enfant"
un formulaire apparait avec la liste des enfants et leurs données
==> ici tu peux ajouter ou supprimer un ou des enfants
quand tu supprimes: tu choisis l'enfant à supprimer dans le combo
et les frames sont automatiquement déplacées et renumérotées dans l'ordre

une coche "Détail" te permet d'afficher ou pas le détail des calculs "Nb Jours Hors Dimanche + Tarif Club"

quand tu reviens sur le formulaire principal, tu as toujours le bouton "Total" pour mettre à jour les totaux
tu modifies==> le tableau est mis à jour (avec suppression ou ajout d'un enfant)

voila. c'est juste pour m'amuser et si ca te sert, et bah c'est encore mieux

je suis en train de regarder pour le "séjour 1"==> je dois faire en sorte qu'il y a autant de lignes que d'enfants..
 

Pièces jointes

  • Inscriptions 2023 Version Dynamique Rev2.xlsm
    333 KB · Affichages: 1
Dernière édition:

Clemee61

XLDnaute Junior
Bonjour vgendron,
Très content d'avoir de tes nouvelles !
Excellent ton "amusement". J'ai vu le code (rapidement)... Attention tu vas avoir plus de ligne que ma première version. 😄. Plus sérieusement c'est extra !
J'ai vu que tu avais bloqué la suppression de la frame 1. J'imagine que c'est parce qu'elle est reliée à la ligne où il y a toutes les autres données.

Pour ma part j'ai continué à chercher à améliorer sans vous embêter. Je joins ma dernière version.
J'ai réussi non sans mal à ajouter une remise dans les calculs. Du coup j'ai mis locked à true pour toutes les textbox où les calculs se font automatiquement. Comme tu l'avais suggéré, la case remise permettra de faire beaucoup moins d'erreur.

Malgré ton conseil : si quelque soit la feuille de "chargement", tu enregistres toujours dans inscriptions, il faut aller dans la macro "SaveUSF" pour modifier la feuille cible... mais la. tu vas avoir un pb de numéro de ligne cible.
Aucun de mes essais n'a fonctionné. Si tu veux bien me donner la solution je suis preneur.

Là tout de suite j'essai de résoudre le problème de la case "Doit" qui si elle se trouvait en négatif bug. Je cherche... je cherche. Mais ça n'est pas bien grave car ça ne doit pas arriver.
 

vgendron

XLDnaute Barbatruc
ouaip, pour la frame1, c'est pas que je ne veux pas la supprimer;. c'est qu'on ne peut pas.. j'explique
la première frame est dessinée en "dur" sur le formulaire
les autres frames sont générées dynamiquement par le code
on peut donc supprimer tout ce qui a été créé par code, mais pas en dur..
ou alors. il faudrait generer AUSSI la première frame par code==> partir d'un formulaire vierge..
mais bon. ca fait beaucoup de modifs je pense...

une solution pour supprimer l'enfant 1 serait de copier les données de l'enfant 2 sur le1, puis supprimer le 2...
bon.. j'ai encore quelques jours pour m'amuser avant d'aller voir le soleil Martiniquais !! :)
 

vgendron

XLDnaute Barbatruc
Hello
Allez ! pour le fun
Quelques informations sur cette version
1) j'ai modifé la présentation des feuilles
==>en supprimant la première ligne de table vide
==>en déplacant les boutons au dessus des tableaux et figeant les 2eres lignes de la feuille

2) j'ai modifié le formulaire "Fiche Inscription"
==> il y la frame avec les boutons "Nouveau, Modifier, Aller a....
==> un bouton "Saisie Enfants"
==> un indicateur du nombre d'enfants
==> la frame "Parasol &Siège
==> les notes
==> les Renseignements Administratifs
==> les Tarifs et Paiement: sur lequel j'ai ajouté la box "Remise" pour saisir un montant qui sera déduit du Total
par contre.. comme il n'y a pas de colonne "Remise" dans les tables, au rappel de la fiche, tu ne sauras pas qu'il y a eu une remise: la case sera à 0 et le montant sera le nouveau montant total (remise incluse)
il faut donc que tu le notes dans "Notes" si tu ne veux pas faire de remise à chaque fois....

3) Quand tu selectionnes un client et que tu cliques "Aller à"
le nombre d'enfants est mis à jour ==> tu sais combien d'enfants sont enregistrés dans la table (leur données sont préchargées dans l'autre formulaire)
les infos du formulaire Fiche Inscription sont chargées

tu cliques sur "Saisie Enfants" ==>le formulaire "USF_Enfants" s'ouvre: tu trouves ainsi
==> Les frames Enfants: qui contiennent
* les données "classiques"
* les deux données NbJours + Tarif Club==> que tu peux afficher ou pas avec le chkbox Detail
- à recalculer avec le bouton "Calculer club"
==> Les frames "Séjour1" de chaque enfant + Frame Total Séjour 1==> que tu peux afficher ou pas avec le ChkBox Séjour1
==>Le Bouton Recopier Séjour (la partie Total Séjour 1 n'est pas mise à jour pour l'instant...)

==> tu peux ajouter ou supprimer un enfant (enfant 1 y compris)

Quan tu quittes ce formulaire, ca revient sur la fiche, le nouveau nombre d'enfants est mis à jour MAIS pas encore enregistré sur la feuille ==> à faire grace au bouton "Modifier"
si tu recliques sur "Aller a" AVANTde modifier.. tu recharges la fiche telle que sur la table. ainsi, tu annules ce que tu as pu faire
 

Pièces jointes

  • Inscriptions 2023 Version Dynamique Rev3.xlsm
    363.2 KB · Affichages: 4

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87