• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

komma vervangen in dubbelepunt

Status
Niet open voor verdere reacties.

Rik230592

Gebruiker
Lid geworden
27 feb 2014
Berichten
9
ik ben opzoek naar een makkelijke manier om tijden in te voeren dus als ik 1,32 in vul dat hij er [u:mm:ss] 0:01:32 van maakt. maar als er bijvoorbeeld 62,62 ingevuld word dat er dan ook 1:03:02 van gemaakt wordt. En als ik 1,02,35 in zou vullen moet er 1:02:35 uitkomen. Het mag ook zijn dat je bijvoorbeeld 4352 invoert en er dan 0:43:52 van gemaakt wordt of een andere makkelijke manier.

bvd :D
Rik Ottenheijm
 
Laatst bewerkt:
Probeer eens met deze macro, wel achter je werkblad hangen en niet in een module:

Code:
Private Sub Worksheet_Change(ByVal target As Range)
 On Error Resume Next
  If Intersect(target, Range("A1:A100")) Is Nothing Then GoTo Einde
   If IsEmpty(target) Then GoTo Einde
    If Hour(target.Value) <> 0 Or Minute(target.Value) <> 0 Then GoTo Einde
 Application.EnableEvents = False
  If Int(target.Value / 100) < 0.1 Then
   target = "00:" & target.Value
  Else
   target = Int(target.Value / 100) & ":" & Right(target.Value, 2)
  End If
 Application.EnableEvents = True
 Einde:
  ActiveSheet.Calculate
 End Sub
 
Ik heb de code in een bestandje gezet.
De code geldt voor kolom A en tot een max van 23:59
Wil je groter tijden invoeren moet je de cel-eigenschappen op [u:mm] zetten.
 

Bijlagen

Met een formule (zie bijlage) (werkt niet in oude Excel 2003 versie ivm als.fout-formule). Kies voor celeigenschappen - aangepast - :mm:ss
Voor oudere versies gebruik:

Code:
=ALS(ISFOUT(GEHEEL(A1)/1440+REST(A1;GEHEEL(A1))/864);(LINKS(A1;VIND.SPEC(",";A1)-1)/24)+(DEEL(A1;VIND.SPEC(",";A1)+1;2)/1440)+(RECHTS(A1;2)/86400);(GEHEEL(A1)/1440+REST(A1;GEHEEL(A1))/864))
 

Bijlagen

Laatst bewerkt:
Probeer eens met deze macro, wel achter je werkblad hangen en niet in een module:

Code:
Private Sub Worksheet_Change(ByVal target As Range)
 On Error Resume Next
  If Intersect(target, Range("A1:A100")) Is Nothing Then GoTo Einde
   If IsEmpty(target) Then GoTo Einde
    If Hour(target.Value) <> 0 Or Minute(target.Value) <> 0 Then GoTo Einde
 Application.EnableEvents = False
  If Int(target.Value / 100) < 0.1 Then
   target = "00:" & target.Value
  Else
   target = Int(target.Value / 100) & ":" & Right(target.Value, 2)
  End If
 Application.EnableEvents = True
 Einde:
  ActiveSheet.Calculate
 End Sub

Heel erg bedankt voor u reactie,

ik heb gevonden hoe ik hem werkend krijg, alleen hij werkt niet helemaal hoe hij zou moeten werken als ik 33333 in geef dan zou er 3:33:33 maar er staat dan 21:33:00.
 
Laatst bewerkt:
Ik heb de code in een bestandje gezet.
De code geldt voor kolom A en tot een max van 23:59
Wil je groter tijden invoeren moet je de cel-eigenschappen op [u:mm] zetten.

is het mogelijk om deze voor [u:mm:ss] te maken?
want daar is hij voor nodig namelijk
 
Zie ook bijlage voor een formule zonder het gebruik van de komma's (vanaf cel B11). Dan kun je dus gewoon 132, 6262, 33333 etc invullen
 

Bijlagen

Ik zou gaan voor de auto correctie
Die werkt snel, makkelijk en altijd in alle excel bestanden.
Gebruik hem zelf al jaaaaaaaren. :thumb: :thumb: :thumb:
 
@popipipo

Hoe stel jij die in bij autocorrectie ?
 
snb, ik ben dan wel niet popipipo, maar desondanks in Excel 2010 gaat het zo:

Opties > Controle > Tab Autocorrectie >
onder "Vervangen:" ingeven ++
onder "Door:"ingeven :
 
Zie ook bijlage voor een formule zonder het gebruik van de komma's (vanaf cel B11). Dan kun je dus gewoon 132, 6262, 33333 etc invullen

Hallo er zit nog een klein foutje in de formule voor de gene met kommagetallen als ik namelijk 1,2,3 ingeef zou er 1:02:03 moeten kommen te staan alleen er staat 1:02:00. is dit op te lossen?
bvd
Rik Ottenheijm

ik heb hem zelf al samen gevoegd en hij functioneert.

=ALS(Invulblad!B7=0;0;ALS(ISFOUT(VIND.SPEC(",";Invulblad!B7));SOM(GEHEEL(Invulblad!B7/10000)/24)+(GEHEEL(REST(Invulblad!B7/10000+1;GEHEEL(Invulblad!B7/10000+1))*100)/1440)+(RECHTS(Invulblad!B7;2)/86400);ALS.FOUT((GEHEEL(Invulblad!B7)/1440+REST(Invulblad!B7;GEHEEL(Invulblad!B7))/864);(LINKS(Invulblad!B7;VIND.SPEC(",";Invulblad!B7)-1)/24)+(DEEL(Invulblad!B7;VIND.SPEC(",";Invulblad!B7)+1;2)/1440)+(RECHTS(Invulblad!B7;2)/86400))))
 
Laatst bewerkt:
Ik heb de code in een bestandje gezet.
De code geldt voor kolom A en tot een max van 23:59
Wil je groter tijden invoeren moet je de cel-eigenschappen op [u:mm] zetten.

Hallo er zit nog een klein foutje in de formule als ik namelijk 1,2,3 ingeef zou er 1:02:03 moeten kommen te staan alleen er staat 1:02:00. is dit op te lossen?
bvd
Rik Ottenheijm
 
Code:
=als(isfout(vind.spec(",";a2));(geheel(a2/10000)/24)+(geheel(rest(a2/10000+1;geheel(a2/10000+1))*100)/1440)+(rechts(a2;2)/86400);als.fout((geheel(a2)/1440+rest(a2;geheel(a2))/864);(links(a2;vind.spec(",";a2)-1)/24)+(midden(a2;vind.spec(",";a2)+1;2)/1440)+substitueren(rechts(a2;2);",";"")/86400))

Verschil zit 'm op het eind bij de laatste "rechts"-formule. Hier heb ik nog iets met Substitueren aan toegevoegd.
Wellicht ten overvloede maar is er dus wel een verschil tussen 123 en 1,2,3. De eerste wordt gezien als 1 minuut en 23 seconden. De tweede als 1 uur 2 minuten en 3 seconden.
 
Laatst bewerkt:
Ik zou dan het liefst alleen maar getallen, zonder scheidingsteken, invoeren:
Deze leest van links naar rechts: het eerste getal (of de eerste twee) is/zijn de uren, daarna de minuten, etc.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
        Target = Format(Target, "00:00" & IIf(Len(Target) > 4, ":00", ""))
    Application.EnableEvents = Not Application.EnableEvents
End Sub

@Haije

Merci !
 
Laatst bewerkt:
Code:
=als(isfout(vind.spec(",";a2));(geheel(a2/10000)/24)+(geheel(rest(a2/10000+1;geheel(a2/10000+1))*100)/1440)+(rechts(a2;2)/86400);als.fout((geheel(a2)/1440+rest(a2;geheel(a2))/864);(links(a2;vind.spec(",";a2)-1)/24)+(midden(a2;vind.spec(",";a2)+1;2)/1440)+substitueren(rechts(a2;2);",";"")/86400))

Verschil zit 'm op het eind bij de laatste "rechts"-formule. Hier heb ik nog iets met Substitueren aan toegevoegd.
Wellicht ten overvloede maar is er dus wel een verschil tussen 123 en 1,2,3. De eerste wordt gezien als 1 minuut en 23 seconden. De tweede als 1 uur 2 minuten en 3 seconden.

hallo er staan nog 2 fouten in maar ik heb deze zelf gevonden en er uit gehaald. het moet zijn:

=ALS(ISFOUT(VIND.SPEC(",";P2));SOM(GEHEEL(P2/10000)/24)+(GEHEEL(REST(P2/10000+1;GEHEEL(P2/10000+1))*100)/1440)+(RECHTS(P2;2)/86400);ALS.FOUT((GEHEEL(P2)/1440+REST(P2;GEHEEL(P2))/864);(LINKS(P2;VIND.SPEC(",";P2)-1)/24)+(DEEL(P2;VIND.SPEC(",";P2)+1;2)/1440)+SUBSTITUEREN(RECHTS(P2;2);",";"")/86400))

Bedankt!!
 
Laatst bewerkt:
@Rik

Gewoon even de formule evaluator gebruiken ! Die hebben ze niet voor niets jou 'gratis' meegeleverd bij Excel.
 
Bij mij werkt mijn oorspronkelijke formule zonder problemen (mijn 2010-versie kent de formule DEEL() niet) maar dat maakt verder niet uit: ik ben blij dat het is gelukt!
 
Laatst bewerkt:
hallo Rik
je schrijft in post 1
Code:
 dat je bijvoorbeeld 4352 invoert en er dan 0:43:52 uit moet komen.
wil je dan ook dat
1840 overgaat in 0:18:40 of moet het overgaan in 18:40:00
mijn vraag is dus:
als de eerst 2 cijfers onder de 24 zijn moet het dan zijn het dan uren worden of worden het altijd minuten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan