Avatar billede h_s Forsker
23. marts 2008 - 18:53 Der er 8 kommentarer og
1 løsning

Fejl i formatet

Her er en del af noget VBA.
Det kigger på kolonne A og skriver ugenummer i kolonne G og mmm-yy (mmm-åå) i kolonne H.
Det virker også god nok - sådan da - for i nogen af rækkerne skriver den mmm-yy (maj-07), men i andre yy-mmm (07-apr). Når man ser på hvad der reelt står i cellerne, står der maj-07 hvor der står det rigtige, men i de andre står der en hel dato (07-04-2008) Ja der står faktisk 2008.

Det jeg gerne vil have den til er, at skrive:
jan-07 når der står datoer fra 01-01-07 til 31-01-07
feb-07 når der står datoer fra 01-02-07 til 28-02-07
mar-07 osv.

r = 2
        lastrow = Range("A65536").End(xlUp).Row
        For r = 2 To lastrow
       
        Cells(r, 7).NumberFormat = "General"
        Cells(r, 8).NumberFormat = "General"
     
        Cells(r, 7).Value = UgeNr(Cells(r, 1).Value)
        Cells(r, 8).Value = Format((Cells(r, 1).Value), "mmm-yy")
        Next r
osv.

'Bruges til at vælge ugenummer i Diagram-makro
Function UgeNr(MyDate) ' fra bak
Dim Resten As Single
Resten = (MyDate - 2) Mod 7
UgeNr = Int((MyDate - DateSerial(Year(MyDate + 3 - Resten), 1, Resten - 9)) / 7)
End Function

Hvad er der galt?
Avatar billede jlemming Nybegynder
24. marts 2008 - 20:25 #1
Excel ændret åbenbart selv format, efter vi sætter det til general til noget den tror det er!

Prøv dette:

r = 2
        lastrow = Range("A65536").End(xlUp).Row
        For r = 2 To lastrow
       
        Cells(r, 7).NumberFormat = "General"
       
        Cells(r, 7).Value = UgeNr(Cells(r, 1).Value)
        Cells(r, 8).Value = Format((Cells(r, 1).Value), "mmm-yy")
        Cells(r, 8).NumberFormat = "mmm-yy"
       
        Next r
Avatar billede h_s Forsker
24. marts 2008 - 20:53 #2
Det virkede desværre ikke.
Det er "sjovt", men det er kun rækkerne med maj og oktober datoer, der står rigtigt (maj-07 og okt-07). Resten står forkert (07-Jan, 07-feb osv.) I de celler der står forkert, står der faktisk en hel dato dd-mm-åååå.
Avatar billede h_s Forsker
24. marts 2008 - 20:57 #3
Ups. Det passer ikke.
De datoer der er forkerte står faktisk som 08:

mar-08 reelt 07-03-2008 Der står i kolonne A: 19-03-2007
apr-08 reelt 07-04-2008 Der står i kolonne A: 02-04-2007
25. marts 2008 - 21:21 #4
Du skal sætte den reelle dato ind i cellen, og hvis det er den, som står i cells(r,1), så skulle nedenstående køre

r = 2
lastrow = Range("A65536").End(xlUp).Row

For r = 2 To lastrow
    Cells(r, 7).NumberFormat = "General"
    Cells(r, 8).NumberFormat = "mmm-yy"

    Cells(r, 7).Value = UgeNr(Cells(r, 1).Value)
    Cells(r, 8).Value = Cells(r, 1).Value
Next r
Avatar billede h_s Forsker
25. marts 2008 - 21:33 #5
Tak skal du have, men det løser kun halvdelen af problemet.
"mmm-yy" skal skrive mar-07, apr-07 osv. og ikke hele datoen i formatet "mmm-yy"
Kan du rette det?
25. marts 2008 - 22:12 #6
Med min tilføjelse skulle der gerne stå hele dato'en i cellen, og cellens formatering sørger så for kun at vise mmm-yy - er det ikke godt nok ??
25. marts 2008 - 22:13 #7
Hvis det virker forkert hos dig, så skulle du måske indsætte værdierne først, og derefter formatere cellerne - sådan

r = 2
lastrow = Range("A65536").End(xlUp).Row

For r = 2 To lastrow
    Cells(r, 7).Value = UgeNr(Cells(r, 1).Value)
    Cells(r, 8).Value = Cells(r, 1).Value

    Cells(r, 7).NumberFormat = "General"
    Cells(r, 8).NumberFormat = "mmm-yy"
Next r
25. marts 2008 - 22:15 #8
^ Ovenstående virker hos mig.

Alternativt kan du formatere til tekst, men så kan du ikke regne videre på datoen senere...

r = 2
lastrow = Range("A65536").End(xlUp).Row

For r = 2 To lastrow
    Cells(r, 7).NumberFormat = "General"
    Cells(r, 8).NumberFormat = "@"

    Cells(r, 7).Value = UgeNr(Cells(r, 1).Value)
    Cells(r, 8).Value = Format((Cells(r, 1).Value), "mmm-yy")
Next r
Avatar billede h_s Forsker
27. marts 2008 - 18:49 #9
smartoffice_dk> Tak! dit indlæg 25/03-2008 22:15:53 løser mit problem!
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