pb vba format date

darkneo51

XLDnaute Nouveau
Bonjour tout le monde, bon mon appli fait son petit bonhomme de chemin mais là j'ai encore besoin d'aide.

Sur le morceau de code ci-dessous, le textbox est alimenté par un nombre de secondes(exemple=10.8), le format de ma cellule de copie est en : mm:ss,0.
Quoique je tente dans mon code, sur cet exemple, je ressort la valeur 10:50,0 au lieu de 0:10,5.:confused::confused:
Et ensuite, si je tente de mettre un nombre de secondes supérieur à 60 alors là j'ai une incompatibilité de type sur cette ligne :If x Is Nothing Then c = CDate(TextBox4.Value);

Bref, si quelqu'un peut encore m'aider.
Merci énormément d'avance.

Dim x As Range
Dim b As Integer
Dim c As Date
Set x = Sheets("TPS moules").Range("A:A").Find(TextBox3.Value, , xlValues, xlWhole, , , False)

If TextBox4 Like "#" Then TextBox4 = TextBox4 & ".0"
If TextBox4 Like "##" Then TextBox4 = TextBox4 & ".0"
If TextBox4 Like "###" Then TextBox4 = TextBox4 & ".0"

'CAS n'existe pas=>ajout d'une nouvelle ligne
If x Is Nothing Then maligne = Range("A65536").End(xlUp).Row + 1
If x Is Nothing Then Sheets("TPS moules").Range("A" & maligne).Value = TextBox3.Value 'COPIE REFERENCE PIECE
If x Is Nothing Then c = CDate(TextBox4.Value)
If x Is Nothing Then Sheets("TPS moules").Range("F" & maligne).Value = c / 60: 'COPIE TEMPS CYCLE


:confused::confused::confused::confused::confused::confused::confused::confused::confused:
 

jpb388

XLDnaute Accro
Re : pb vba format date

Bonjour
le système français est avec la virgule et pas le point donc normal.
si l'entré de la textbox 00:00 on récupère tout simplement avec cdate
sinon si décimal on recherche le point avec instr et lapartie gauche avec left correspondra aux minutes la droite avec right aux secondes on réuni le tout cdate(gauche & ":" & droite )
ainsi tu peux additionner ou soustraire sans problème
 

darkneo51

XLDnaute Nouveau
Re : pb vba format date

Bonjour jpb388. Merci de votre réponse, je viens de la tester, mais cela me cause toujours des soucis.
J'ai modifié le code ainsi :
If x Is Nothing Then d = Left(TextBox4, InStr(TextBox4, ".") - 1)
If x Is Nothing Then c = Right(TextBox4, 2)
If x Is Nothing Then Sheets("TPS moules").Range("F" & maligne).Value = CDate("0:" & d & ":" & c)

Cependant dès lors que je mets une décimale (correspondant à des dixièmes de secondes), cela ne fonctionne pas.
Si je saisi un nombre de secondes entier, pas de problème, le format récupéré dans excel est bien du type : 0:##,0
Et toujours problème si j'inscris des secondes supérieures à 59

Merci d'avance
 

jpb388

XLDnaute Accro
Re : pb vba format date

Bonjour
la dixième de seconde va de 0 à 9
la seconde de 0 à 59
la minute de 0 à 59
seule l'heure peut dépassé 24h

sortir de ce cadre = erreur
si tu n' y arrive pas met ton fichier en ligne
a+
jp
 

darkneo51

XLDnaute Nouveau
Re : pb vba format date

Bonjour, je mets en pièce jointe le fichier. (au format zip avec 7zip découpé, reste normalement à déplacer .001 .002 et .003 derrière .zip .....)
le test est sur le userform4, bouton TEST.
Il suffit de remplir la zone référence, et le temps de cycle au format ##.# (nb de secondes et dixième de secondes).

La feuille TPS moules doit créer une nouvelle ligne si la réf n'existe pas et inscrire le temps de cycle correspondant au format mm:ss,0 (ce que je n'arrive pas du tout à faire, :mad:)

La suite du code doit également me permettre de tester si la réf existe et si le temps est moins long que la saisie ..... pour remplacer soit la saisie soit le temps de référence, cela sera ma prochaine étape, lol.

Merci d'avance de votre aide, c'est très sympa
 

Pièces jointes

  • Copie de Nouveau TRS1 001.zip
    244.1 KB · Affichages: 39
  • Copie de Nouveau TRS1 002.zip
    244.1 KB · Affichages: 34
  • Copie de Nouveau TRS1 003.zip
    139.5 KB · Affichages: 30

darkneo51

XLDnaute Nouveau
Re : pb vba format date

Bonsoir jpb388,
alors le coup du calendrier, j'adore!!!!
Super sympa, j'avais essayé à un moment mais mon niveau ne me permettait pas de réussir ça (encore d'actualité d'ailleurs).
Pour le format temps de cycle, le seul souci c'est que la saisie sera toujours en nombre de secondes, par exemple, 2 minutes seront renseignées dans le textbox en 120.0 (les aléas d'une logique d'entreprise, lol). Il faut que j'arrive à adapter cela.
En tout cas, merci beaucoup d'avoir déjà passé du temps sur mon fichier, je découvre depuis peu ce forum, et je trouve cela vraiment génial de pouvoir copter sur des gens comme cela.
Bonne soirée, et j'attend avec impatience le prochain jet inventif de ta part, j'aime assez ton style de programmation.
 

jpb388

XLDnaute Accro
Re : pb vba format date

re
Version 2

dans la feuille macro toutes celles dont je n'ai pas trouvé l'utilité je l'ai est mises en vert.

dans test j'ai mis 3 parties en vert
a+
 

Pièces jointes

  • Darkneo_V2.xls
    61.5 KB · Affichages: 47

darkneo51

XLDnaute Nouveau
Re : pb vba format date

Bonjour jp, ces 3 lignes me donnent une erreur incompatibilité de type :
'Range("d" & MaLigne) = Me.Cbo_Machine
'Range("e" & MaLigne) = CInt(Me.Txt_Empr.Value)
'Range("g" & MaLigne) = "=rc[-1]/rc[-2]"

Si je les mets en commentaires, je peux tester.
Au niveau du dépassement (ex:69 secondes), ça marche super, déjà un bon avancement. Par contre, il faudrait que si l'on ne saisi pas de décimales, on ajoute automatiquement ".0" derrière je pense

Par rapport à tes annotations, au sujet des lignes "cas plus court, cas plus long", en fait, dans la première partie, on cherche si une référence de pièce a déjà un temps de référence inscrit, si non (nouvelle production par exemple), on en crée une (ce que tu as fais dans le code que tu m'as envoyé).

Par contre, si on a retrouvé la référence de pièce dans ce tableau, alors on regarde si le temps de référence est plus important ou non, ceci afin de voir si la cadence de la machine est toujours conforme au meilleur temps réalisé ou non.
Si le temps inscrit par l'opérateur est plus court que celui du tableau, alors on remplace le temps de référence (les réglages de la machine sont plus performants), dans le cas contraire, on devrait remplacer la valeur du textbox par le temps retrouvé dans la feuille "TPS moules".
J'espère avoir été assez clair dans mes explications.

Ensuite, tout le bas du userform que tu n'as pas retrouvé c'est parce que j'ai d'autres bouton ou textbox dans mon fichier que je créé, et je les ai retiré pour aller à l'essentiel de ma question.

En tout cas, merci déjà beaucoup
 

jpb388

XLDnaute Accro
Re : pb vba format date

re
seconde sans virgule OK
pour les 3 lignes chez moi elles fonctionnent sans problème.
c'est en adaptant la macro sur ton fichier ou sur celui que je t'ai envoyé ?

pour le reste puisque tu as la version intégrale et surtout cela me semble à ta portée je te laisse faire
 

Pièces jointes

  • Darkneo_V3.xls
    86.5 KB · Affichages: 52
  • Darkneo_V3.xls
    86.5 KB · Affichages: 53
  • Darkneo_V3.xls
    86.5 KB · Affichages: 53

darkneo51

XLDnaute Nouveau
Re : pb vba format date

Bonjour tout le monde, bon, j'ai quasiment fini cette partie grâce à vos coups de pouce.
Il me reste un souci lorsque je veux voir la valeur du dixième de seconde.
Par exemple, si la valeur dans la cellule (au format mm:ss,0) est 00:15,3 lorsque je veux voir la valeur du dernier caractère, je n'ai pas la bonne valeur. Si je fais msgbox second..... ou minutes....., tout est bon, le découpage est ok, mais je ne sais pas comment nommer ce caractère représentant les dixièmes de secondes.
Une idée svp?
 

Discussions similaires

Statistiques des forums

Discussions
312 491
Messages
2 088 889
Membres
103 982
dernier inscrit
krakencolas