*

Help!

Problemen met uw pc? De vrijwilligers van oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Recent

Auteur Topic: Tijdsprobleempje  (gelezen 718 keer)

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Tijdsprobleempje
« Gepost op: 13 november 2017, 20:08:32 »
Hallo helpers,

Ik weet niet meer wie, maar er is een helper geweest die mij een stukje code heeft gegeven mbt het invoeren van tijd. Deze code werkt perfect totdat ik een foutje maak. volgens mij lees ik in de code dat, wanneer ik een foutje maak er een msgbox moet openen om mij te wijzen dat ik een fout maak en dit moet herstellen. Helaas gebeurd het nu dat de fout bestraft wordt met een stop van de code en moet ik de procedure opnieuw opstarten. Het gaat om deze code en wellicht ziet iemand wat hier niet precies goed gaat ;)

Private Sub txtTijd_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If TxtTijd.Text = "" Then Exit Sub
    If InStr(1, TxtTijd.Text, ":") = 0 Then
        TxtTijd.Text = TimeSerial(0, CInt(Left(TxtTijd.Text, Len(TxtTijd.Text) - 2)), CInt(Right(TxtTijd.Text, 2)))
    End If
    If Not IsDate(TxtTijd.Text) Then
        MsgBox "De ingevoerde waarde '" & TxtTijd.Text & "' is géén tijd! Herstel dit...", vbOKOnly, "Foute invoer"
        TxtTijd.Text = ""
        TxtTijd.SetFocus
        TxtTijd.SelStart = 0
        TxtTijd.SelLength = Len(TxtTijd.Text)
        Cancel = True
    End If

End Sub

Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.210
  • I've Upped my standards,now,up yours!
Re: Tijdsprobleempje
« Reactie #1 Gepost op: 13 november 2017, 20:29:20 »
Volgens mij moet je de check gewoon boven de handeling zetten (en een exit sub toevoegen)
Private Sub txtTijd_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If TxtTijd.Text = "" Then Exit Sub
    If Not IsDate(TxtTijd.Text) Then
        MsgBox "De ingevoerde waarde '" & TxtTijd.Text & "' is géén tijd! Herstel dit...", vbOKOnly, "Foute invoer"
        TxtTijd.Text = ""
        TxtTijd.SetFocus
        TxtTijd.SelStart = 0
        TxtTijd.SelLength = Len(TxtTijd.Text)
        Cancel = True
        exit sub
    End If
    If InStr(1, TxtTijd.Text, ":") = 0 Then
        TxtTijd.Text = TimeSerial(0, CInt(Left(TxtTijd.Text, Len(TxtTijd.Text) - 2)), CInt(Right(TxtTijd.Text, 2)))
    End If


End Sub
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #2 Gepost op: 13 november 2017, 20:43:47 »
Dank voor je opmerking Dizzl, echter is dit nu ook niet de oplossing, laat mij proberen uit te leggen:

Ik kan met deze code bijvoorbeeld "345" invoeren en bij het verlaten van dit veld, maakt de code er dan 00:03:45 van wat een gewenste tijdsnotatie is. dit gaat altijd goed. met jouw voorstel om zaken om te draaien accepteert de code geen 345 meer, want, geen juiste tijdsnotatie ;)

Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline JeanPaul

  • Excel-Expert
  • Lid
  • *****
  • Berichten: 48
  • Oplossing.be
Re: Tijdsprobleempje
« Reactie #3 Gepost op: 13 november 2017, 23:00:55 »
Dit noemt tijd in militaire notatie, in bijlage een voorbeeld

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.210
  • I've Upped my standards,now,up yours!
Re: Tijdsprobleempje
« Reactie #4 Gepost op: 14 november 2017, 06:43:31 »
misschien is deze link dan wat voor jou?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #5 Gepost op: 14 november 2017, 07:00:29 »
Dit noemt tijd in militaire notatie, in bijlage een voorbeeld

Dat is inderdaad een mooie, in mijn code doet hij dat voor minuten en seconden, maar ook in jouw code krijg je de critical foutmelding indien je een foutieve invoer doet en stopt de macro.

misschien is deze link dan wat voor jou?
Die kende ik inderdaad al, maar dat is een gewone formule, en kost je een extra kolom voor de uitvoering...
Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline lommer

  • Excel-Expert
  • Lid
  • *****
  • Berichten: 70
  • Geslacht: Man
Re: Tijdsprobleempje
« Reactie #6 Gepost op: 14 november 2017, 10:33:30 »
Hierbij nog een mogelijkheid, deze zou geen error mogen geven.
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #7 Gepost op: 14 november 2017, 11:19:41 »
Hoi Lommer,
Dank voor je bijdrage ;)
Hierbij nog een mogelijkheid, deze zou geen error mogen geven.
Geeft inderdaad geen error, telt gewoon dagen door ;) maar ook deze gaat voorbij aan mijn 1ste bijdrage. Daar betreft het minuten en seconden. een invoer van "130" geeft dus als uitkomst "00:01:30" en niet "01:30:00". Een invoer van "6930" geeft in mijn code "01:09:30" en niet "21-12-1918  0:00:00".

We zoeken gestaag door ;)
Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline lommer

  • Excel-Expert
  • Lid
  • *****
  • Berichten: 70
  • Geslacht: Man
Re: Tijdsprobleempje
« Reactie #8 Gepost op: 14 november 2017, 13:41:52 »
Volgende poging.
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.676
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tijdsprobleempje
« Reactie #9 Gepost op: 14 november 2017, 14:12:33 »
Deze code werkt perfect totdat ik een foutje maak
Ik zou zeggen dat ik de procedure herken als iets van mijn hand...  ;)

Maarrrr.... Kan je ook precies aangeven WAT dan je "foutje" is? Dan moeten we zoiets namelijk gaan afvangen.
______________________________

Groet, Leo

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #10 Gepost op: 14 november 2017, 15:07:24 »
Ik zou zeggen dat ik de procedure herken als iets van mijn hand...  ;)

Maarrrr.... Kan je ook precies aangeven WAT dan je "foutje" is? Dan moeten we zoiets namelijk gaan afvangen.

Hoi RedHead,

De foutjes kunnen heel divers zijn, ik typ nogal snel en "glij" nog wel eens met mijn vingers uit over het keyboard. dus dan staat er weer eens een punt of een + of - tussen, erg onhandig maar als ik dan een tab geef dan krijg ik dus die alles stoppende foutmelding.
Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.676
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tijdsprobleempje
« Reactie #11 Gepost op: 14 november 2017, 18:03:12 »
Probeer het zo eens...
Private Sub txtTijd_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    If TxtTijd.Text = "" Then Exit Sub
     TargetTest = Target.Value
    If VarType(TargetTest) = 5 Then
         If InStr(1, TxtTijd.Text, ":") = 0 Then
               TxtTijd.Text = TimeSerial(0, CInt(Left(TxtTijd.Text, Len(TxtTijd.Text) - 2)), CInt(Right(TxtTijd.Text, 2)))
          End If
    End if
    Rest van de code....
 
______________________________

Groet, Leo

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #12 Gepost op: 14 november 2017, 18:54:03 »
Dat resulteert in een foutmelding 424 "object vereist" en dan wijst hij de regel met TargetTest aan. Wellicht dat Target.Value de boosdoener is want ik heb geen Target gedefinieerd, maar daar snap ik op dit moment te weinig van ;)
Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.676
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tijdsprobleempje
« Reactie #13 Gepost op: 14 november 2017, 20:04:51 »
Whoops! Stom van me. Mijn fout. Je werkt met een formulier en niet met een sheet.
Ik zal zo nog ff voor je kijken.
______________________________

Groet, Leo

Offline Josc1965

  • Lid
  • *
  • Berichten: 84
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
Re: Tijdsprobleempje
« Reactie #14 Gepost op: 15 november 2017, 08:48:01 »
Whoops! Stom van me. Mijn fout. Je werkt met een formulier en niet met een sheet.
Ik zal zo nog ff voor je kijken.

Ik ben al heel blij met je hulp. Waar gehakt wordt vallen spaanders. uiteindelijk zal er iets moois ontstaan :)
Johan

Windows 10 Home   NLD 64bit
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

 


www.combell.com