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: 33

Clemee61

XLDnaute Junior
Bonjour,

J'ai les même problèmes dans ta nouvelle fiche que sur l'"ancienne" :

1) Il m'est arrivé de ne pas avoir de monnaie et d'avoir une somme reçue plus importante que la somme due. Pour m'en souvenir je met tout simplement la somme reçue dans la case paiement. Mais dans ce cas le total de la case doit est négatif et provoque un bug. Comme d'hab j'ai essayé tout plein de chose même une boîte de dialogue qui s'ouvrirait en cas de nombre négatif dans la textbox "doit" mais comme souvent c'est un échec pour moi. :confused:

2) En cas d'appel d'une fiche sur l'ancienne saison, une fois cliquer sur "Nouveau" le contenu de la fiche s'inscrit sur l'ancienne saison, elle doit s'inscrire sur la nouvelle.
Là encore j'ai essayé d'appeler la feuille "Inscriptions" mais tout ce que j'arrive à faire c'est activité la feuille après et non avant la mise en écriture des données. 😤
 

vgendron

XLDnaute Barbatruc
Hello
Dans cette version, j'ai réglé quelques bugs que j'avais observés
pour le montant "Doit": il peut maintenant etre négatif==> la case se colorie en vert (et en rouge si positif)

pour ton pb 2)
il y a un souci de fonctionnement je trouve: des questions se posent: regarde dans la PJ

- Si tu lances la fiche sur la saison précédente: les clients 3 et 4 te sont proposés (ce sont les seuls dans la feuille Saison Précédente)

- Tu selectionnes le client n° 3==> la macro identifie que ses données sont en lignes 3 à 5 de la feuille

- Tu fais des modifs et tu enregistres
avec "Modification"==> tout est ok sur la feuille Saison Précédente
avec "Nouveau" ==> tout est ok sur la feuille Saison Précédente

mais si tu veux enregistrer sur la feuille "Inscriptions" (pas prévu encore)
Avec 'Modification" ==>le client 3 n'est PAS à la meme place sur les lignes 3 à 5 (mais 7 à 9)==> pb d'écrasement...
Avec "Nouveau"==> le client serait créé une seconde fois en bas de table. sans aucun control pour savoir s'il existe déjà...
 

Pièces jointes

  • Inscriptions 2023 Version Dynamique Rev5.xlsm
    348.3 KB · Affichages: 3

Clemee61

XLDnaute Junior
Effectivement il semble y avoir quelques problèmes :

Pour ma part lorsque je lance la fiche sur la saison précédente et que je sélectionne le client 3, seul les données autres que celles des enfants sont repérées.
Bizarrement pour le 4 par contre il prend toutes les données.

Pour créer un nouveau client ça fonctionne.

Par contre comme les données sur la USF des enfants ne se vident pas d'une sélection à l'autre, il y a un bug si j'essai de supprimer un enfant. Exemple je charge la feuille du client 4. Je sors de l'USF. Je charge la fiche du client 3. Si je vais dans "Saisie enfant", les enfants du client 4 sont encore affichés.

Pour la modification en fait il n'y en a pas besoin sur la saison précédente. La feuille "saison précédente" et en quelque sorte une base de données qui permet de récupérer les informations administratives et les nom, prénom des enfants avec leur date de naissance. Pas besoin de récupérer les dates, formules choisies, natation, tarifs, date de ruban jaune ou crêpe puisqu'ils vont changer.

Pour le bouton "Nouveau" de la saison précédente. S'il se marque sur la feuille "inscriptions", il n'y a pas vraiment de risque de doublon. Si le client n'est pas encore venu de la saison on va chercher les infos sur "saison précédente". Mais s'il est déjà là, on n'a pas de raison d'aller reprendre sa fiche autrement que dans la saison actuelle pour faire une modification. Sur une erreur de manip on peut cliquer sur "Nouveau" et confirmer auquel cas il y a un doublon qui se crée mais ça n'est pas bien grave.
 

vgendron

XLDnaute Barbatruc
Pour ma part lorsque je lance la fiche sur la saison précédente et que je sélectionne le client 3, seul les données autres que celles des enfants sont repérées.
Bizarrement pour le 4 par contre il prend toutes les données.
Je ne comprend pas; je viens de faire le test: toutes les données sont bien chargées


Par contre comme les données sur la USF des enfants ne se vident pas d'une sélection à l'autre, il y a un bug si j'essai de supprimer un enfant. Exemple je charge la feuille du client 4. Je sors de l'USF. Je charge la fiche du client 3. Si je vais dans "Saisie enfant", les enfants du client 4 sont encore affichés.
Idem, je ne comprend pas: à chaque fois que tu selectionnes un client dans la liste, le bouton "Saisie Enfant" est désactivé pour te forcer à faire "Aller A" pour recharger les nouvelles données (les anciennes sont déchargées)
et seulement la, le bouton "Saisir Enfant" redevient disponible

es tu sur d'avoir utilisé la dernière version?

pour le reste.....tu sembles encore une fois redéfinir ou préciser l'utilisation.. on s'y perd..
de ce que j'en comprend: la feuille "Saison précédente" est juste un fichier client avec juste les parents et enfants SANS aucune donnée de séjour: Comme tu n'a pas besoin de les charger.. tu n'as donc pas non plus besoin de les sauvegarder. donc autant supprimer les colonnes inutiles
 

Clemee61

XLDnaute Junior
pour le reste.....tu sembles encore une fois redéfinir ou préciser l'utilisation.. on s'y perd..
de ce que j'en comprend: la feuille "Saison précédente" est juste un fichier client avec juste les parents et enfants SANS aucune donnée de séjour: Comme tu n'a pas besoin de les charger.. tu n'as donc pas non plus besoin de les sauvegarder. donc autant supprimer les colonnes inutiles
Dans ma première version (celle avec tout plein de ligne de code), j'avais toutes les données dans la feuille de la saison précédente. Mais lorsque je chargeais les données sur l'USF "saison précédente", je ne chargeais que celle qui m'intéressaient. C'était facile car j'avais totalement séparé l'USF "Inscriptions" de l'USF "saison précédente". Il n'y a pas de changement pour moi. Mon erreur est de ne pas l'avoir expliqué... mais je t'assures aucun changement par rapport au système et à l'esprit d'origine de cette feuille saison précédente.

Je regarde à nouveau pour le reste.
 

vgendron

XLDnaute Barbatruc
ici, quand tu cliques sur Nouveau, l'enregistrement se fait dans la feuille Inscriptions "quelque soit la source utilisée pour ouvrir la fiche"..

Je ne sais plus si j'avais mentionné la boite "Remise": elle y est.
 

Pièces jointes

  • Inscriptions 2023 Version Dynamique Rev6.xlsm
    365.9 KB · Affichages: 7

Clemee61

XLDnaute Junior
Parfait pour l'enregistrement dans la feuille "inscriptions". Et j'avais bien vu pour la boite "remise".

Je suis allé faire un tour du coté des listes. Si la prise en charge de l'âge est impeccable, il manque la prise en charge de la date. Pour que la feuille d'appel soit juste, il faut que la date positionnée en case A2 soit comprise entre la date de début de séjour et la date de fin de séjour.
 

Clemee61

XLDnaute Junior
Bonsoir,
Sur une fiche au maximum on a eu 6 enfants. Mais c'était des cousins. On essaie d'inscrire sous le même numéro que les frères et sœurs donc 4 c'est le maximum qu'on ait eu vraiment.
Est-ce bien la question ou le nombre total de lignes qui vous intéressait ?
 

Clemee61

XLDnaute Junior
Bonjour à tous,

J'ai une question qui s'adresse bien sûr à vgendron mais qui peut peut-être être résolu par un des nombreux spécialistes qui suivent le fil ;). D'autant que j'espère que vgendron sirote un cocktail sur une plage paradisiaque !

Pour permettre d'afficher un total négatif dans une textbox, vgendron à remplacer ce code :

Me.Txt_Paiement = IIf(Me.Txt_Paiement = "", 0, Me.Txt_Paiement)
Me.Txt_Doit = Format(CDbl(Me.Txt_TOTAL) - CDbl(Me.Txt_Paiement), "0.00 €")
Me.Txt_Doit.BackColor = IIf(CDbl(Txt_Doit.Value) > 0, &HEB, &HE0E0E0) 'coloration

Par celui ci :

Me.Txt_Paiement = Format(IIf(Me.Txt_Paiement = "", 0, Me.Txt_Paiement), FormNum)
Me.Txt_Doit = Format(CDbl(Me.Txt_TOTAL) - CDbl(Me.Txt_Paiement), FormNum)
Me.Txt_Doit.BackColor = IIf(CDbl(Txt_Doit.Value) > 0, vbRed, vbGreen) 'coloration

Alors moi petit malin (enfin je croyais l'être), dans l'autre version de la fiche d'inscription, j'ai voulu remplacé mon code suivant qui n'accepte pas de nombre négatif :

Me.Txt_Paiement = IIf(Me.Txt_Paiement = "", 0, Me.Txt_Paiement)
Me.Txt_Doit = Format(CDbl(Me.Txt_TOTAL) - CDbl(Me.Txt_Paiement), "0 €")
Me.Txt_Doit.Value = Format(Me.Txt_Doit.Value, "0 €") 'Formatage
Me.Txt_Doit.BackColor = IIf(CDbl(Txt_Doit.Value) > 0, &HEB, &HE0E0E0) 'coloration

Par celui qui fonctionne plus haut :

Me.Txt_Paiement = Format(IIf(Me.Txt_Paiement = "", 0, Me.Txt_Paiement), FormNum)
Me.Txt_Doit = Format(CDbl(Me.Txt_TOTAL) - CDbl(Me.Txt_Paiement), FormNum)
' Me.Txt_Doit.Value = Format(Me.Txt_Doit.Value, "0 €") 'Formatage
Me.Txt_Doit.BackColor = IIf(CDbl(Txt_Doit.Value) > 0, vbRed, vbGreen) 'coloration

Bon ben à l'évidence je ne suis pas un petit malin... Sauriez vous pourquoi cela ne fonctionne pas ?
 

Clemee61

XLDnaute Junior
Je vais joindre le fichier pour que ce soit plus simple à comprendre.
(Il faut lancer l fiche d'inscription puis indiquer une remise ou un paiement plus grand que le TOTAL calculé) :

Erreur d'exécution type 13, Incompatibilité de type

Si je met un paiement plus grand que le total c'est la dernière ligne (en rouge) qui est surlignée
Si le met une remise plus grande que le total c'est la deuxième ligne (en bleu) qui est surlignée

Me.Txt_Paiement = Format(IIf(Me.Txt_Paiement = "", 0, Me.Txt_Paiement), FormNum)
Me.Txt_Doit = Format(CDbl(Me.Txt_TOTAL) - CDbl(Me.Txt_Paiement), FormNum)
' Me.Txt_Doit.Value = Format(Me.Txt_Doit.Value, "0 €") 'Formatage
Me.Txt_Doit.BackColor = IIf(CDbl(Txt_Doit.Value) > 0, vbRed, vbGreen) 'coloration

Alors sur ce qu'est sensé faire le "FormNum" : j'imagine mettre au format numérique mais je n'ai pas trouvé sur me net.

Cédric
 

Pièces jointes

  • Inscriptions 2023 problème DOIT.xlsm
    484.1 KB · Affichages: 7

Statistiques des forums

Discussions
315 095
Messages
2 116 169
Membres
112 676
dernier inscrit
little_b