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...​

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour 974,
Dans l'USF Devis, la date s'affiche correctement chez moi :
1613920348346.png

Pour le point 2, la feuille n'est pas précisée, j'ai supposé que c'était "Archive Devis", ensuite Ligne pointe la première ligne vide donc contient toujours 0, il faut utiliser le N° de la Ligne-1. J'ai modifié ainsi :
VB:
Set Ws = Sheets("Prestation")
Set F = Sheets("Archive Devis")
Me.Désignation.List = Ws.Range("ListForfaits").Value

If Ligne = 2 Then
    Me.TextBox6 = Year(Date) & "-001"
Else
    Me.TextBox6 = Year(Date) & "-" & Right("00" & Val(Right(F.Cells(Ligne - 1, 1), 3)) + 1, 3)
End If
 

soan

XLDnaute Barbatruc
Inactif
@974RE (salut sylvanu)

UF Visualiser, subs HDépart_Exit, HArrivée_Exit, et Total_Heure_Exit :
tu as mis le format hh\Hmm au lieu de hh:mm !

UF Modifier : c'est ok : y'a pas de hh\Hmm !



c'est bizarre : en principe, tu devrais avoir un problème de format d'heures seulement pour le UF Visualiser, pas pour le UF Modifier !​

soan
 
Dernière édition:

974RE

XLDnaute Occasionnel
@974RE (salut sylvanu)

UF Visualiser, subs HDépart_Exit, HArrivée_Exit, et Total_Heure_Exit :
tu as mis le format hh\Hmm au lieu de hh:mm !

UF Modifier : c'est ok : y'a pas de hh\Hmm !



c'est bizarre : en principe, tu devrais avoir un problème de format d'heures seulement pour le UF Visualiser, pas pour le UF Modifier !​

soan
J'en conviens, grâce à ta remarque j'ai constaté que j'avais écrit en 2 fois les codes de format dans l'USF Visualiser.
J'ai rectifié et j'ai toujours le même problème. ils affichent 0,5 ou 0,625 ou encore 0,125???
Merci de tes réponses. Je reste dans l'attente d'une solution
 

soan

XLDnaute Barbatruc
Inactif
@974RE

j'ai trouvé ces autres anomalies :

* UF Visualiser, sub ComboBox1_Change() : tu n'emploie pas le format hh:mm pour :
HDépart1 ; HArrivée1 ; Total_Heure1 ; HDépart2 ; HArrivée2 ; Total_Heure2

* UF Modifier : idem dans la sub ComboBox1_Change() ; et dans valider_Click(),
c'est pour : HDépart ; HArrivée ; Total_Heure

soan
 

soan

XLDnaute Barbatruc
Inactif
oui, c'est bien ça ; comment ? de la même façon que ce que tu as déjà fait.

exemple pour UF Visualiser, sub ComboBox1_Change() :

VB:
    ...
   
    Me.HDépart1 = Format(.Range("L" & Ligne), "hh:mm")
    Me.HArrivée1 = Format(.Range("M" & Ligne), "hh:mm")
    Me.Total_Heure1 = Format(.Range("N" & Ligne), "hh:mm")
   
    ...
   
    Me.HDépart2 = Format(.Range("R" & Ligne), "hh:mm")
    Me.HArrivée2 = Format(.Range("S" & Ligne), "hh:mm")
    Me.Total_Heure2 = Format(.Range("T" & Ligne), "hh:mm")
   
    ...

(pareil pour tous les autres endroits où tu écris des heures dans des TextBox)

soan
 

974RE

XLDnaute Occasionnel
Merci soan. Ton aide m'a été très précieuse ainsi que celle de sylvanu. Merci à tous les deux!
J'avais pas mal avancé, mais là je "calais".
Je mettrais en place tout cela dès demain.
Je fatigue un peu.
Bonne soirée à vous, à bientôt et merci encore.
 

soan

XLDnaute Barbatruc
Inactif
@974RE

j'ai relu ton 2°, à propos du n° automatique ; à faire demain :

essayer cette nouvelle sub UserForm_Initialize() (du UF Devis) :

VB:
Private Sub UserForm_Initialize()
  Dim lig&, chn$: Jour = Date: lig = 2
  Do
    chn = Worksheets("Client").Cells(lig, 3): If chn = "" Then Exit Do
    ComboBox1.AddItem chn: lig = lig + 1
  Loop
  Désignation.List = Worksheets("Prestation").Range("ListForfaits").Value
  lig = Worksheets("Client").Cells(Rows.Count, 3).End(3).Row + 1
  TextBox6 = Year(Date) & "-" & Format(lig, "000")
End Sub

soan
 

974RE

XLDnaute Occasionnel
Soan bonjour, tout d'abord, merci de l'attention que tu mets à m'aider.
Pour les problèmes d'affichage des heures, c'est réglés. Ouf!
Par contre, j'ai testé ce matin ton code pour le N° automatique, il m'affiche systématiquement 2021-004.
Ce que je cherche à faire, c'est que dès le 1er devis il m'affiche 2021-001 et ensuite il enchaîne pour les Devis suivants.
J'ai également découvert ce matin que j'avais un problème sur le code du bouton quitter: si je ne suis pas sur la feuille "Devis" il beug à la ligne de code :ActiveSheet.ListObjects("Devis").DataBodyRange.Delete
Merci de partager ton savoir avec autant de gentillesse: un post à 22h30, grave Merci! (chez moi il était 1h30 du matin).
 

Discussions similaires

Réponses
12
Affichages
282

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510