Microsoft 365 vba format date et N° automatique

974RE

XLDnaute Occasionnel
Bonsoir le forum,
Une fois de plus je fais appel à vous.
Je rencontre 2 problèmes que je n'arrive pas à résoudre:
1° Sur mes USF Visualiser et Modifier, mes textBox Heures ne s'affiche pas au format hh:mm bien que j'ai précisé ce format.
2° je n'arrive pas à l'ouverture de l'USF Devis à ce qu'il me donne automatiquement le N° Suivant qui devrait être 2021-002 puis au prochain devis 2021-003...
Auriez-vous la gentillesse de bien vouloir m'aider s'il vous plaît.
Je sais pouvoir compter sur votre aide.
Merci d'avance!
 

Pièces jointes

  • Essai CL1 Copie.xlsm
    182.4 KB · Affichages: 182
Solution
Bonjour 974RE, Yeahou, le fil,

tu as écrit : « Je crois que Soan à raison, aujourd'hui je coupe: plage, déjeuner les pieds dans l'eau, sieste et......je reprends! »

quoi ? t'as déjà fini d'faire trempette ? 😱 ben t'as pas nagé bien longtemps, dis donc ! tu pourras jamais rattraper Laure Manaudou si tu t'entraînes aussi peu ! 😁 😄 😂 bon, t'as d'la chance, regarde, elle t'attend :

Regarde la pièce jointe 1100325



tu as aussi écrit : « Je vais de ce pas décortiquer tes codes. » ; ben ça non plus ça t'a pas pris bien longtemps ! moi qui croyais qu'on t'reverrai plus avant un mois ou deux ! 😁 🤣 🤣 🤣 bon, c'est vrai qu'mes codes sont très faciles à comprendre, et en plus c'est comme les crêpes : c'est bien plus...​

soan

XLDnaute Barbatruc
Inactif
@974RE

Lis d'abord mon post #121 précédent. :)

voici un petit exemple de ce que je disais quand je parlais de modifier la date d'une facture : imagine que tu t'es levé le 28 mars ; t'es en pleine forme, tu fais une facture, la date du 28 mars est là, tout est ok ! 😊 et tout à coup, tu t'aperçois, horrifié, que c'est une facture pour le curé de ta paroisse ! :eek: que va-t-il penser de toi s'il se rend compte que t'as fait une facture le 28 mars ? :eek: c'était un dimanche ! horreur ! nul doute que la prochaine fois que tu le verras, il va te dire : « c'est pas bien, mon petit 974RE ; tu as travaillé un dimanche sur ton PC au lieu d'aller à la messe ! que va dire le révérend Alden, de Walnut Grove ? et Caroline Ingalls ? » ; alors à moins de prétendre que c'est pas vrai, et que t'aidais Charles Ingalls à labourer son champ, il vaut bien mieux que tu mettes la date du 26 mars (le vendredi précédent) ou la date du 29 mars (le lundi d'après) ! bon, j'imagine d'ici ta réponse : « y'a aucun problème ! si le client est le curé, j'déchire la facture et j'lui offre tous les trajets gratos ! 😁 » ; c'est bien, mon fils, D. te le rendra au centuple, et Don Camillo est fier de toi ! 😇

petite question : t'es bien sûr d'vouloir jamais changer la date automatique de la facture ? pa'c'que si c'est pas l'cas, faut qu'tu reprennes la version du fichier où la date de la facture était une TextBox et pas un Label ! c'était : "Essai CL7.xlsm". :rolleyes:

soan
 

974RE

XLDnaute Occasionnel
Bonjour Soan,
Tu dors jamais? 2h00 du matin chez toi, 4h00 du matin chez moi (décalage par rapport la Métropole de 2H00 depuis Dimanche).
Pour revenir sur la problématique de la date de la facture:
Je comprends bien ton propos, mais que la date de la facture soit un dimanche ou un samedi n'est pas un problème en soi: en effet, il s'agit ici de location de véhicule ancien pour de l'évènementiel: donc la plus part du temps en weekend, jours fériés.... Mon petit fils est un amoureux de vieilles voitures, et il en possède deux et une troisième à venir. Il a donc créé une petite entreprise de location de ces véhicules pour les mariages....
Cela lui permet de sortir ces voitures et aussi d'amortir leurs entretien. J'ai voulu lui donner un coup de main pour lui faciliter la tache. D'où ce projet.
Si d'aventure, à la pratique, il s'avère nécessaire de modifier cela, grâce à toi j'aurais la possibilité de le faire.
Concernant le curé, lui aussi il travaille le dimanche et les jours fériés, et en plus il prend de l'argent mais il ne fait pas de facture lui!!! et on n'a pas la garantie d'avoir une place au paradis!
Concernant le Label, j'étais persuadé qu'il ne servait qu'à nommer les TextBox. Bon à savoir: très utile quand on veut qu'il n'y ait pas d'intervention de l'utilisateur. Si j'ai bien compris il me suffit de remplacer les TextBox par des Labels?
Hier, j'ai pensé qu'il serait peut-être utile de rapatrier les données de l'USF Estimatif dans l'archivage des Devis (Km, Temps de Travail...). En cas de modification du Devis, ces données pourrait être utile pour les saisir de nouveau éventuellement (si changement de trajet par exemple: donc moins de Km). Qu'est ce que tu en pense?
Soan Merci encore. Bonne journée à toi.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour 974RE,

oui, chez nous aussi, dimanche dernier, on a avancé d'une heure ; il est maintenant 11 h 00.

c'est sympa d'aider ton petit fils, ainsi que les anciennes voitures, par exemple :

Image 1.jpg


c'est pas mal, pour un mariage, non ? 😜 mais sur une île, il vaut pas mieux avoir des voitures amphibies ? 🤪

Image 2.jpg




c'est marrant, le curé qui travaille le dimanche, et en plus les jours fériés ! c'est vraiment une vocation, alors ! par contre, s'il prend de l'argent sans faire de facture, c'est moins top : les dons que tu lui fais pourront pas être déductibles des impôts ! 😭


pour les labels, oui, c'est bien ça : quand c'est juste une info à afficher sur le UserForm et pas une donnée à saisir, c'est mieux de mettre un Label qu'une TextBox ; mais avant de supprimer la TextBox, notes-en ces quelques propriétés pour pouvoir les mettre ensuite sur le Label : Height ; Width ; Top ; Left (taille et position) + éventuellement couleur de fond et couleur de texte, gras ou italique, taille de police, type d'alignement, effet flat ou sunken (travaille sur une copie du fichier pour revoir au besoin l'original) ; c'est pas difficile à faire, mais c'est quand même assez long et fastidieux.

pour la dernière partie concernant les données de l'UF Estimatif, j'vais y réfléchir, mais j'sais pas encore si j'vais trouver kek'chose ; de toutes façons, j'dois travailler sur d'autres exos, alors c'est très loin d'être dans l'immédiat ! ça risque même d'être dans une petite semaine !


est-ce que t'as vu la nouveauté d'mon fichier précédent ? choisis dans la liste "Rechercher" la 3ème personne, et tu verras qu'il y a un Autofit automatique pour la ligne du Trajet. 🙂 (et ça sera aussi le cas pour Prise en Charge et Fin de Course si ça arrive qu'ils sont très longs)

il est maint'nant 11 h 35 ⌚

soan
 
Dernière édition:

974RE

XLDnaute Occasionnel
Je te souhaite un bon appétit alors.
Je n'avais pas fait attention lorsque j'ai ouvert ton dernier fichier. Je t'explique: lorsque tu m'envoi un fichier, je ne me contente pas de le prendre, j'ouvre un fichier de travail sur lequel je reprends tes lignes de codes pour tenter de comprendre comment tu as fait . Sur ce fichier, je tente ce que je peux de mon coté, et concernant l'AutoFit j'avais réussi à créer le code à partir d'éléments que j'avais trouvés sur Internet. Mais moi, ces lignes de codes je les ai placées sur la feuille11(Facture).
Private Sub Worsheet_Change(ByVal Target As Range)
Target.CurrentRegion.EntireRow.AutoFit
End Sub
J'ai fait de même pour les Feuilles Devis et DevisModifié. Je pense que là, toutes les cellules de la feuille sont en AutoFit, même si là aussi, dans l'absolu, on doit pouvoir cibler des cellules . C'est pourquoi mon attention n'a pas été attirée par ce changement dans ton fichier.
Ton procédé est pas mal dans le sens où seule les lignes concernées sont en AutoFit: c'est même mieux!
Merci de réfléchir sur l'USF Estimatif. De mon coté je cherche aussi.
T'en fait pas pour les délais, je serais patient, je comprends bien que tu as d'autres "affaires" sur le feu.
Bonne fin d'après-midi à toi. Merci Soan.
 

974RE

XLDnaute Occasionnel
Je te souhaite un bon appétit alors.
Je n'avais pas fait attention lorsque j'ai ouvert ton dernier fichier. Je t'explique: lorsque tu m'envoi un fichier, je ne me contente pas de le prendre, j'ouvre un fichier de travail sur lequel je reprends tes lignes de codes pour tenter de comprendre comment tu as fait . Sur ce fichier, je tente ce que je peux de mon coté, et concernant l'AutoFit j'avais réussi à créer le code à partir d'éléments que j'avais trouvés sur Internet. Mais moi, ces lignes de codes je les ai placées sur la feuille11(Facture).
Private Sub Worsheet_Change(ByVal Target As Range)
Target.CurrentRegion.EntireRow.AutoFit
End Sub
J'ai fait de même pour les Feuilles Devis et DevisModifié. Je pense que là, toutes les cellules de la feuille sont en AutoFit, même si là aussi, dans l'absolu, on doit pouvoir cibler des cellules . C'est pourquoi mon attention n'a pas été attirée par ce changement dans ton fichier.
Ton procédé est pas mal dans le sens où seule les lignes concernées sont en AutoFit: c'est même mieux!
Merci de réfléchir sur l'USF Estimatif. De mon coté je cherche aussi.
T'en fait pas pour les délais, je serais patient, je comprends bien que tu as d'autres "affaires" sur le feu.
Bonne fin d'après-midi à toi. Merci Soan.
Soan bonsoir,
Je sais que tu es pas mal débordé, mais je me permets quand même de revenir vers toi car j'ai découvert un problème majeur:
J'ai rajouté un véhicule supplémentaire et j'ai fait un nouveau devis avec le nom d'un client qui avait déjà fait l'objet d'un devis (Tellement satisfait le bougre qu'il a demandé un nouveau devis pour une nouvelle date). Du coup, pour établir sa facture, la recherche ne me donne que les noms des clients et lorsque je choisi le client il affiche le premier devis mais pas le dernier réalisé pour ce client!
Je me rends compte qu'il me faut probablement revoir la structure de ma Feuille client pour que je puisse récupérer la nouvelle date de la nouvelle demande.
Si tu as une idée! Peut-être créer une feuille demande entre la feuille client et le devis??? Cette nouvelle feuille enregistrerait le nom du client et les dates évènements????
Je réfléchis de mon côté.
Bonne soirée à toi.
 

974RE

XLDnaute Occasionnel
Soan bonsoir,
Je sais que tu es pas mal débordé, mais je me permets quand même de revenir vers toi car j'ai découvert un problème majeur:
J'ai rajouté un véhicule supplémentaire et j'ai fait un nouveau devis avec le nom d'un client qui avait déjà fait l'objet d'un devis (Tellement satisfait le bougre qu'il a demandé un nouveau devis pour une nouvelle date). Du coup, pour établir sa facture, la recherche ne me donne que les noms des clients et lorsque je choisi le client il affiche le premier devis mais pas le dernier réalisé pour ce client!
Je me rends compte qu'il me faut probablement revoir la structure de ma Feuille client pour que je puisse récupérer la nouvelle date de la nouvelle demande.
Si tu as une idée! Peut-être créer une feuille demande entre la feuille client et le devis??? Cette nouvelle feuille enregistrerait le nom du client et les dates évènements????
Je réfléchis de mon côté.
Bonne soirée à toi.
Bonjour Soan, Yeahou,
Soan, ne tiens pas compte de mon précédent post. J'ai résolu le problème en agissant sur les lignes de codes du l'USF Facture. La recherche ne se fait plus sur le nom, mais sur le N° Devis.
Par contre, je voudrais que le bouton rechercher affiche à son ouverture le N° Devis et le nom du client.
J'ai tenté beaucoup de choses, mais je n'y suis pas arrivée (BoundColumn, ColumnCount...). J'ai également tenté sur les codes de l'USF Facture (Initialize) puisque la ComboBox Rechercher se charge à l'ouverture, mais je n'ai pas réussi à lui faire faire.
Comme je sais que Soan est très occupé, Yeahou si tu avais un moment?
Merci à tous les deux.
Joyeuses fête de Pâques à tous les deux (Malgré le confinement).
 

Pièces jointes

  • Essai CL8.2.xlsm
    360.8 KB · Affichages: 6

soan

XLDnaute Barbatruc
Inactif
Bonjour 974RE, Yeahou,

bonnes fêtes de Pâques à vous deux. :)

j'ai téléchargé ton fichier CL8.2 ; si j'ai bien compris, tu veux qu'à l'ouverture du USF Facture, ça affiche le N° Devis et le Nom du Client ; mais ce n'est pas possible pour ces 2 raisons :

1) une fois que le USF Facture est ouvert, c'est à l'utilisateur de choisir dans la liste "Rechercher" le Devis dont il faut faire la facture, et c'est seulement à ce moment-là, APRÈS avoir choisi le Devis, qu'on peut savoir le Nom du Client ; quant au N° Devis, il est « connu automatiquement » puisque c'est justement celui que tu choisis dans la liste "Rechercher", et qui s'affiche alors dans le champ "N° Devis", en plus des autres infos.

2) je rappelle qu'à l'ouverture du USF Facture, il n'y a que la Date de la facture et le N° Facture ; ça ne permet pas de « deviner à l'avance » quel sera le devis que tu vas choisir dans la liste "Rechercher" ; donc le N° Devis et le Nom du Client ne peuvent pas être affichés dès l'ouverture du USF.

mais peut-être que j'ai mal compris ta demande, et que quelque chose m'a échappé ?

soan
 
Dernière édition:

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour 974RE, soan, le forum

Soan, je je pense que 974RE veut en fait afficher le nom dans la liste de recherche en plus du n° de devis, pour cela, il faut échanger le dico par un tableau en passant les colonnes à 2.
en modifiant juste l'UserForm_Initialize de l'UF_Facture, ça devrait le faire !

Bien cordialement, @+
VB:
Private Sub UserForm_Initialize()
  Dim d, c, chn$, n&, i&
  With Worksheets("A.DV")
   n = .Cells(Rows.Count, 1).End(3).Row
  d = .Range("A2:B" & n).Value
  c = .Range("A2:D" & n).Value
  For i = LBound(d, 1) To UBound(d, 1)
    d(i, 2) = c(i, 4)
  Next i
        End With
  n = Worksheets("A.Fact").Cells(Rows.Count, 1).End(3).Row
  TextBox1 = "FACT" & Year(Date) & "-" & Format(n, "000") 'N° Facture
  JourFre = Format(Date, "dd/mm/yyyy"): Rechercher.List = d
End Sub
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re,
je pense que le numéro de facture devrait en fait se rattacher au numéro de devis.
Ce serait plus clair.

Cordialement, @+
Code:
Private Sub Rechercher_Change()
  Dim cel As Range, ref$, lig&
  lig = Rechercher.ListIndex: If lig = -1 Then ClrUF_Fre: Exit Sub
  
 
 
  With Worksheets("A.DV").Cells(lig + 2, 1)
'on remplit les champs avec les cellules de la feuille "A.DV"
    ref = .Value: NuméroDevis = ref
    TextBox1 = "Fact-" & NuméroDevis: DateDevisInitial = .Offset(, 1): DateModif = .Offset(, 2): NOM = .Offset(, 3)
    ADRESSE = .Offset(, 4): Ville = .Offset(, 5): DateEvènement = .Offset(, 6)
    PriseEnCharge = .Offset(, 7): Trajet = .Offset(, 8): FinCourse = .Offset(, 9)
  End With
  
  With Worksheets("A.LD")
    Set cel = .Columns(1).Find(ref, , -4163, 1, 1)
    If cel Is Nothing Then Exit Sub
    Dim n&: LigsDétail.Clear
    Do While cel.Offset(n) = ref
      LigsDétail.AddItem
      LigsDétail.Height = LigsDétail.ListCount * LigsDétail.Font.Size * 2
      LigsDétail.List(n, 0) = cel.Offset(n, 1)  'Désignation
      LigsDétail.List(n, 1) = cel.Offset(n, 2)  'Qté
      LigsDétail.List(n, 2) = Format(cel.Offset(n, 3), "#,##0 €")  'lblPU
      LigsDétail.List(n, 3) = Format(cel.Offset(n, 4), "#,##0 €")  'lblHT
      n = n + 1
    Loop
  End With
End Sub
 

Pièces jointes

  • Essai CL8.2 - Copie.xlsm
    349.2 KB · Affichages: 3

soan

XLDnaute Barbatruc
Inactif
@974RE

je pense que tu es parti sur une mauvaise piste, et je te conseille de repartir du fichier 8.1 ; en fait, à partir de cette version, j'avais vu tout de suite que ton système ne peut marcher que s'il y a un seul devis pour chaque client ; donc d'après moi, la recherche doit se faire à partir de 2 choix :

1) choisir le Nom du Client, comme c'est déjà fait dans la version 8.1 ; 2) choisir aussi le N° Devis dans une 2ème ComboBox, mais la liste doit proposer uniquement les devis qu'elle trouvera sur la feuille "A.DV" dont le Nom du Client CORRESPOND à celui qui a été choisi dans la liste "Rechercher" (1ère ComboBox).​



@Yeahou

on s'est croisés ; j'ai pas eu l'temps d'voir en détail tes 2 derniers posts,
et comme j'suis fatigué, j'vais arrêter mon PC. 😴 😴 😴

soan
 
Dernière édition:

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
en ajoutant la date, ce sera encore mieux !

[édition : @soan , tu te couches tard, dis donc ! ( ou tôt, ça dépend comment on se place ! )
reposes toi bien et à plus tard !]
 

Pièces jointes

  • Essai CL8.2 - Copie.xlsm
    347.7 KB · Affichages: 7
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour
histoire de vous saluer
j'ai tenté de répondre a la problématique de la présence de plusieurs Devis pour un même Client.
je n'ai pas traité les autres Boutons "Modifié" etc etc
j'ai aussi constaté la présence d'un Combobox "Désignation " peux tu nous en dire plus que doit il contenir et a partir de Quoi ?
Merci !
Bonne fin de journée
jean marie
 

Pièces jointes

  • Essai CL8.1.Chti160.xlsm
    330.5 KB · Affichages: 7

Discussions similaires

Réponses
12
Affichages
297

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley