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

tijd notatie wordt in verkeerde opmaak weergegeven

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
Ik heb een Tabel waarin in 3 kolommen een tijdnotatie komt.

kolom A - VAN
kolom B - TOT
Deze worden vanuit een Uform met textboxen ingevuld.

kolom C - Aantal uren, (TOT-VAN)

Om een tijdnotatie in de tekstboxen te verkrijgen, zodat men niet steeds de ":" hoeft in te typen heb ik de volgende code gebruikt

Code:
Private Sub TbVan1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
SetTimeOnExit TbVan1 'Me.ActiveControl 'of TbVan1
End Sub

Tot voor kort schreef ik de tijden uit de textboxen als volgt weg in de tabel

Code:
            Sheets("Urenregistratie").Range("E" & lr) = [B]Me(TbVan1)[/B]

Het werkte allemaal prima, maar nu ik een uitbreiding maak met een draaitabel om andere zaken te analyseren, blijkt dat de tijdnotatie niet correct is.
Wanneer ik de eigenschap van de cel wijzig van "hh;mm" naar "hh;mm;ss" blijft er gewoon "hh;mm" staan.
Type ik het tijdstip in de tabel opnieuw, dan geeft het wel "hh;mm;ss" weer.

Het op de juiste manier wegschrijven van de tijden, zodat deze wel voor verdere analyse bruikbaar zijn, is me ondertussen gelukt.

Code:
            Sheets("Urenregistratie").Range("E" & lr) = [B]Format(Me(TbVan1), "hh:mm")[/B]

Ik heb nog wel een probleem met de tijden die voorheen zijn weggeschreven, dat zijn enkele honderden regels :(

Hoe kan ik het makkelijkst de tijden goed krijgen, zonder alle tijden 1 voor 1 opnieuw in te vullen?
"copy, plakken waarden" werkt niet helaas.

Als bijlage een bestand met alleen een deel van mijn tabel met de tijden.
de tijden met notatie "hh;mm;ss" zijn oke
de tijden met notatie "hh;mm"moeten op 1 of andere wijze aangepast worden.

Bekijk bijlage TabelMetTijden.xlsx
 
deze draaien?

Code:
Sub SjonR()
For Each cl In Range("A4:B128")
    If Not IsNumeric(cl) Then cl.Value = TimeValue(cl)
Next
End Sub
 
Code:
Sub M_snb()
    With ListObjects(1).DataBodyRange.Columns(1).Resize(, 2)
       .Value = .Value
    End With
End Sub

Met find / special / constants / text kun je zichtbaar maken welke cellen in het werkblad teksten zijn ook al zien ze er uit als getallen.
 
Laatst bewerkt:
Nope....

foutmelding in code

Code:
Sub SjonR()
For Each cl In Range("A4:B128")
    If Not IsNumeric(cl) Then [B][COLOR="#FF0000"]cl.Value = TimeValue(cl)
[/COLOR][/B]Next
End Sub
 
Wanneer ik een cel selecteer (die fout weer wordt gegeven) en dan in de werkbalk klik, dan een enter geef, dan wordt de notatie goed weergegeven

ik hoef dus niet de waarden opnieuw in te typen. Maar dan nog zijn het er teveel....:rolleyes:
 
Code:
Sub M_snb()
    With ListObjects(1).DataBodyRange.Columns(1).Resize(, 2)
       .Value = .Value
    End With
End Sub

Dit heeft gewerkt......:thumb:


Bedankt SNB, scheelt weer een hoop werk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan