Avatar billede koppelgaard Praktikant
24. oktober 2007 - 16:12 Der er 7 kommentarer og
1 løsning

Datoformat er forkert

Har datoen i en celle 15-9-2004
Vil gerne fra VBA ændre cellen til 15-09-2004.
Jeg har prøvet

Selection.NumberFormat = "yy/mm/dd;@"
men det duede ikke.

Er der nogen der  har et bud?
Avatar billede mugs Novice
24. oktober 2007 - 16:19 #1
Har du formateret din celle som en dato?
Avatar billede koppelgaard Praktikant
24. oktober 2007 - 16:40 #2
jeps, jeg har brugt CDate(værdi)
Avatar billede jkrons Professor
24. oktober 2007 - 17:12 #3
Hvis det kun er en enkelt celle, kan du placere markøren i cellen og bruge

ActiveCell.Value = Format(ActiveCell.Value, "dd-mm-yyyy")

Du kunne også formatere allerede på indsættelsestidspunktet.

Format(Cdate(værdi), "dd-mm-yy")
Avatar billede koppelgaard Praktikant
24. oktober 2007 - 23:01 #4
Ja for søren, det rigtig.

Datoerne fremkommer ved at jeg lægger [A1].currentRegion ind i et dobbelt array sådan:
a=[A1].currentRegion
og henter hver 10 værdi i kolonne 1 i arrayet (som er en dato) ud af arrayet og lægger ind et et andet array b som jeg så til sidst overfører til et ny område:

range(xxxx)=b

Hvordan vil du gøre her ?

NB: Hele makroen er her:


Private Sub CalcColumnHour(c As Long)
  Dim r1 As Long, r2 As Long
   
    r1 = 2
    r2 = 1
    out_length = 1
   
    Sum = 0
    counter = 0
    Do
        Do
            r2 = r2 + 1
            tmpTxt = Right(CDate(a(r2, 2)), 6)
            Sum = Sum + a(r2, c)
            counter = counter + 1
           
        Loop While tmpTxt <> ":00:00"
        TMP = Sum / counter
        out(out_length, c) = Sum / counter
        If c = 3 Then 'if first averagecolumn then add the time to column 2 og date to column 1
            out(out_length, 1) = CDate(a(r1, 1))
            out(out_length, 2) = a(r1, 2)
        End If
       
        r1 = r2 + 1
        counter = 0
        Sum = 0
        out_length = out_length + 1
    Loop While r1 <= UBound(a)
   

End Sub

Sub CalcAverageHour()
    out_length = 1
    a = [A1].CurrentRegion
   
    out_length = UBound(a, 2)
    ReDim out(1 To UBound(a, 1) / 6 + 1, 1 To UBound(a, 2)) '2-d array
   
    For c = 3 To UBound(a, 2)
        CalcColumnHour (c)
    Next c
       
    Sheets.Add after:=Sheets(1)
    On Error Resume Next
    Sheets(2).Name = "Time"
    Range(Cells(1, 1), Cells(UBound(out, 1), UBound(out, 2))).Select
    Range(Cells(1, 1), Cells(UBound(out, 1), UBound(out, 2))) = out
   
    Columns("b:b").NumberFormat = "hh:mm:ss;@"
    Sheets(1).Select
    Rows("1:1").Copy
    Sheets(2).Select
    Selection.Insert Shift:=xlDown
   
End Sub
Avatar billede koppelgaard Praktikant
25. oktober 2007 - 16:18 #5
Ok det var et lidt for stort spørgsmål for sølle 15 point.

Sender du et svar Ikrons, så du kan få point ?


NB:
Måske du også lige kunne fortælle mig, hvad jeg gør, hvis jeg har et større område med forkert dataformatering, som er fremkommet ved at hente en tekstfil ind.
Skal man ind og have fat i hver celle med "Format(Cdate(værdi)", "dd-mm-yy") eller ?
Avatar billede jkrons Professor
25. oktober 2007 - 18:49 #6
Det var såmænd ikke for stort - jeg har bare et job at passe :-)

Til dit oprindelige spørgsmål: Har du prøvet med
out(out_length, 1) = format(CDate(a(r1, 1)), "dd-mm-yy")?

Til det andet.
Det ville jeg gøre med en For Each Next løkke.
Avatar billede koppelgaard Praktikant
26. oktober 2007 - 14:08 #7
Undskyld jeg først reagerer nu - jeg er helt sikker på, at jeg for skrev et svar til dig i går.
Men væk er det.
Nogen gange synes at mine svar ikke kommer med selv om det tilsyneladende drønet ud i www efter tryk på send - eller også er det mig der kludre.

Nå men sender du ikke et svar?
Jeg vil prøve out(out_length, 1) = format(CDate(a(r1, 1)), "dd-mm-yy"
Avatar billede jkrons Professor
26. oktober 2007 - 15:52 #8
Her er et svar. Jeg håber at du får det til at virke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester