Avatar billede eenie Nybegynder
15. december 2011 - 22:22 Der er 8 kommentarer og
1 løsning

Array med datoer skriver dem i Amerikansk format

Hej Alle

Jeg har en array med datoer som skrives mm-dd-yyyy, men jeg vil gerne have at det bliver skrevet, som dd-mm-yyyy. Kan man definere sin array med dette datoformat?

Min array er i format dd-mm-yyyy.
datoer = array("01-01-2012","01-02-2012" ..."01-12-2012","01-01-2013", ...)


Jeg håber at i kan hjælpe :)
Avatar billede eenie Nybegynder
15. december 2011 - 22:24 #1
Forresten... Det er når jeg vha en løkke skriver datoerne ind i Excel. Jeg håber i forstår hvad jeg mener.
Avatar billede tdh1309 Juniormester
15. december 2011 - 22:40 #2
Hmm, hvis jeg forstår dig ret - skal cellen bare formateres til det korrekte dato format.
Højre klik på en celle, vælg "formater celler", og vælg det ønskede dato format.
Du kan eks. gøre dette med "optag macro" - så har du formateringerne i VB.
Håber det hjælper - ellers prøver vi igen!
Avatar billede eenie Nybegynder
16. december 2011 - 10:17 #3
Hej :)

Jeg kan ikke formatere cellerne og få det ønskede resultat. Månederne er dage og omvendt, så når jeg formaterer cellerne står jeg med samme problem. Tak fordi du gider at hjælpe!
Avatar billede eenie Nybegynder
16. december 2011 - 10:22 #4
Excel læser eksempelvis min værdi 01-02-2012 fra VBA som 02-01-2012 (40910) og ikke 01-02-2012 (40940) som den burde :)
Avatar billede tdh1309 Juniormester
16. december 2011 - 14:24 #5
Det er måske ikke så kønt, men løser det problemet?

Sub MMDDTEST()
  MsgBox (MMDDHack("01-02-2012"))
End Sub


Function MMDDHack(strDate) As String
  Dim tmpMM As String
  Dim tmpDD As String
  Dim tmpYYYY As String
  tmpMM = Mid(strDate, 1, 2)
  tmpDD = Mid(strDate, 4, 2)
  tmpYYYY = Right(strDate, 4)
  MMDDHack = tmpDD & "-" & tmpMM & "-" & tmpYYYY
End Function
Avatar billede eenie Nybegynder
20. december 2011 - 21:12 #6
Hej :)

Jeg endte med at ændre alle datoerne for jeg blev nødt til at få det til at virke uden så meget bøvl :) Jeg tænkte at det var nemmere at acceptere at den ville have det i Amerikansk format end at forstå det bagvedliggende.. Det irriterer mig dog stadig at jeg ikke helt forstår det :) Men nu virker det i hvert fald!

Tak fordi du gad at hjælpe. Det sætter jeg stor pris på! Kan du ikke sende et svar, så jeg kan give dig point?

Kenneth
Avatar billede tdh1309 Juniormester
20. december 2011 - 21:41 #7
Svar!
Avatar billede tdh1309 Juniormester
20. december 2011 - 21:45 #8
Ps. Nedenfor er et svar jeg har lavet på et andet spørgsmål, der kan du se hvordan man traverserer gennem felter.
Hvis du har  suplerende spørgsmål, må du lige sige til:


Option Explicit
' Purpose:  Loop row, column on sheet 2 and copy data to sheet 1
' Parameter: None
Sub CopySheet2toSheet1()
  Dim sourceSheet As Worksheet        ' Sheet to copy data from
  Dim destinationSheet As Worksheet  ' Sheet to insert data to
  Dim maxColumn As Long                ' Number of columns in sheet
  Dim maxRow As Long                  ' Number of rows in sheet
  Dim rowCount As Long                  ' Var to loop trough rows
  Dim colCount As Long                  ' Var to loop trough columns
 
 
  ' Initialization
  Set sourceSheet = ThisWorkbook.Worksheets(2)      ' If reference by name: worksheets("Sheet2")
  Set destinationSheet = ThisWorkbook.Worksheets(1) ' If reference by name: worksheets("Sheet1")
  Call applicationInit                              ' Turns off screenupdating and calculation
  maxRow = LastRow(sourceSheet)
  maxColumn = LastColumn(sourceSheet)
  destinationSheet.Cells.Clear                          ' Clears destination sheet
 
  ' Logic
  For rowCount = 1 To maxRow Step 1
    For colCount = 1 To maxColumn Step 1
      destinationSheet.Cells(rowCount, colCount) = "Copied: " & sourceSheet.Cells(rowCount, colCount)
    Next
  Next
 
  ' Termination
  MsgBox (sourceSheet.Name & " copied to " & _
          destinationSheet.Name & ": " & _
          "(rows, columns) = (" & maxRow & ", " & maxColumn & ")")
  Call applicationEnd                              ' Turns on screenupdating and calculation
End Sub
' Purpose:  Turns of stuff to increase performance
' Parameter: None
Sub applicationInit()
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False                ' Update off -> speeds up processing
End Sub
' Purpose:  Turns on stuff when work completed
' Parameter: None
Sub applicationEnd()
    Application.ScreenUpdating = True                                      ' Update on
    Application.Calculation = xlCalculationAutomatic                        ' Calculation on
End Sub
' Purpose:  Return number of rows on worksheet
' Parameter: curSH - Sheet to work on
Public Function LastRow(curSH As Worksheet) As Long
    LastRow = curSH.UsedRange.Rows.Count
End Function
' Purpose:  Return number of columns on worksheet
' Parameter: curSH - Sheet to work on
Public Function LastColumn(curSH As Worksheet) As Long
    LastColumn = curSH.UsedRange.Columns.Count
End Function
Avatar billede tdh1309 Juniormester
27. december 2011 - 10:34 #9
SVAR
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

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