Avatar billede kgndksv Juniormester
09. april 2011 - 17:06 Der er 2 kommentarer og
1 løsning

Combobox dato format ændre sig

Hej

Jeg har lavet en UserForm, hvor i jeg har en Combobox. Mit problem er at jeg fylder Comboboxen med dato-værdier i DK format (dd-mm-åååå), men når jeg bruger Comboboxen i userformen har datoværdierne lige pludselig ændre format i UK (mm-dd-åååå). kan jeg komme uden om dette?

Jeg fylder comboboxen med data fra et array:

combobox1.list = Array
Avatar billede kgndksv Juniormester
09. april 2011 - 17:25 #1
Det er kun i visningen af værdien i userformen at formattet har ændret sig, ikke i selve den bagved liggende kode
Avatar billede store-morten Ekspert
09. april 2011 - 21:59 #2
Prøv:
combobox1.list = Format(Array.Value, "dd-mm-yyyy")
Avatar billede kgndksv Juniormester
11. april 2011 - 12:12 #3
Den løsning har jeg forsøgt tidligere, men det er tilsyneladende ikke muligt at formatere et array på den måde.

tilgengæld har jeg løst problemet således:

Nogle gange gør man VBA mere indviklet end det er :-)

Dim DatoRng As Range
Dim VXBol As Boolean

Dim DatoArray() As Variant
Dim UniqueDatoArray() As Variant

Set DatoRng = Range(ThisWorkbook.Worksheets("EditPlan").Range("C2"), ThisWorkbook.Worksheets("EditPlan").Range("C65000").End(xlUp))

UniqueX = 0


DatoArray = DatoRng.Value


For i = 1 To UBound(DatoArray)

   
   
    ReDim Preserve UniqueDatoArray(UniqueX)

    VXBol = False
       
        For v = 0 To UBound(UniqueDatoArray)
       
            If UniqueDatoArray(v) = DatoArray(i, 1) Then
                VXBol = True
            End If
   
        Next

    If VXBol = False Then
       
        UniqueDatoArray(UniqueX) = DatoArray(i, 1)
    UniqueX = UniqueX + 1
    End If

Next

'Sort array

    For lLoop = 0 To UBound(UniqueDatoArray)

      For lLoop2 = lLoop To UBound(UniqueDatoArray)

            If UniqueDatoArray(lLoop2) < UniqueDatoArray(lLoop) Then

                str1 = UniqueDatoArray(lLoop)

                str2 = UniqueDatoArray(lLoop2)

                UniqueDatoArray(lLoop) = Format(str2, "dd-mm-yyyy") 'her var fejlen!!

                UniqueDatoArray(lLoop2) = Format(str1, "dd-mm-yyyy") 'Her var fejlen!!

            End If

        Next lLoop2

    Next lLoop

ComboBox1.Clear
ComboBox1.List = UniqueDatoArray


Men det er stadig underligt at den ændre formateringen uden den får besked på det...
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
Kurser inden for grundlæggende programmering

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