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

Wegschrijven als CSV - tijdnotatie probleem

Status
Niet open voor verdere reacties.

trainers

Verenigingslid
Lid geworden
8 feb 2012
Berichten
209
Office versie
MS 365
Middels de volgende code schrijf ik de gegevens vanaf rij 6 weg naar een CSV.txt bestand (gescheiden door ; ).
Code:
Option Explicit
'Option Private Module
Dim LastRow As Long, LastColumn As Integer
Dim i As Long, j As Integer
Dim Path As String

Sub OpslaanAls_CSVtxt()
    LastRow = ActiveSheet.UsedRange.Rows.Count
    LastColumn = ActiveSheet.UsedRange.Columns.Count
    Path = ThisWorkbook.Path & "\"
    Open Path & "COMPETITIE_CSV.txt" For Output As #1
    For i = 6 To LastRow
        For j = 1 To LastColumn - 1
            Print #1, Trim(Cells(i, j).Value) & ";";
        Next
        Print #1, Trim(Cells(i, j).Value) & ";"
    Next
    Close #1
End Sub
De datum (opmaak dd/mm/jjjj) gaat goed en wordt keurig weggeschreven als dd/mm/jjjj.
De tijd (opmaak uu:mm) wordt echter weggeschreven als 0,5 in plaats van 12:00.

Waar zit mijn fout?
Alvast bedankt.
 
Die 0,5 is een halve dagdeel van 24 uur.
Schrijf de inhoud van een veld met tijd weg als: Format(Cells(1,1),"hh:mm")

Maar waarom laat je het niet aan Excel over door het werkblad op te slaan als CSV bestand?
Bijvoorbeeld:
Code:
ActiveWorkbook.SaveAs Filename:="C:\CSV\COMPETITIE_CSV.txt", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
 
Laatst bewerkt:
Bedankt voor je reactie Edmoor.
Het wegschrijven van de cellen met een tijdnotatie middels Format(Cells(1,1),"hh:mm") wordt een klusje omdat er ook cellen met datum en tekstopmaak inzitten.

Inderdaad is jouw suggestie om het tabblad door Excel op te laten slaan als CSV veel makkelijker. Ik was hier ook al mee aan het werk doch hanteerde de extensie .csv.
Met .txt en de toevoeging Local:=True is dit de oplossing.
Mijn dank en problem solved.

Groet,
Trainer
 
Dat laatste dacht ik al. Die Local:=True zorgt ervoor dat het scheidingsteken gelijk is aan het opgegeven teken ervoor in de regionale instellingen van Windows.
 
:thumb:
Ik zet het draadje op afgehandeld. Nogmaals dank, weer wat geleerd.

Groet,
Trainer
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan