Avatar billede birkis Nybegynder
20. februar 2002 - 23:13 Der er 16 kommentarer og
3 løsninger

3 spørsmål...

1. Hvordan får man ukenummer i f.eks. celle A1?
(Helst skal det være sånn at når dokumentet opprettes i uke 8, utfylles A1 med 8 - og når dokumentet åpnes i uke 9, står der stadig vekk 8 i A1)

2. Hvordan får man deretter utfylt f.eks. cellene B2 til B8 med datoene i uke 8 (dd.mm)?

3. Noen celler inneholder sum av tid (f.eks. 10:30) - hvordan kan disse "konverteres" til desimaltall (10,5 timer i eksempelet)?

Jeg bruker engelsk Excel XP, men skal nok alltid finne ut av å oversette fra dansk.

Jeg regner med dette er rimelig "nemme" spørsmål for dem som kan Excel, men si til hvis der skal flere point i.

Spør også hvis det er noe av det norske som ikke er mulig å forstå  :-)
Avatar billede janvogt Praktikant
20. februar 2002 - 23:40 #1
På dansk:

1. =UGE.NR(IDAG())
2. ?
3. Excel regner tid i døgn, så 10:30 gange med 24 = 10,5

Spørgsmål 2 er bestemt ikke et nemt spørgsmål :-)
Avatar billede birkis Nybegynder
21. februar 2002 - 00:07 #2
mange takk for svar...

Etter noe arbeid fikk jeg ditt svar på nr. 1 til å fungere.  (Jeg var nødt til å installere en Add-In, og MS har åpenbart endret litt på funksjonen i Office XP.  Jeg måtte nemlig også angi om uken starter søndag eller mandag.)

Men når dokumentet åpnes igjen i neste uke, vil der da ikke stå uke 9?  Jeg ville helst at cellen skulle inneholde ukenummer for den uken dokumentet ble opprettet.

3. virket fint.

Hvis 2 virkelig er et svært spørsmål, skal jeg nok proppe noen flere point i - jeg trodde bare det ville være "nemt" for en ekspert.  :-)
Avatar billede rvm Nybegynder
21. februar 2002 - 00:37 #3
Jeg svarer på spørgsmål 2 *S*

I A1 står en dato

Indsæt så denne formel i B2
=dato(År(A1);Måned(A1);Dag(A1))

I B3:
=dato(År(A1);Måned(A1);Dag(A1)+1)

I B4:
=dato(År(A1);Måned(A1);Dag(A1+2))

Osv

Held og lykke *S*
Avatar billede birkis Nybegynder
21. februar 2002 - 00:56 #4
rvm >> Den virker helt fint hvis man har en dato i A1, men det har jeg vel egentlig ikke?  Jeg har jo kun et ukenummer.  I hvert fall vises dato (f.eks. i B2) som 08.01.1900, og i B3 som 09.01.1900...  :-(
Avatar billede janvogt Praktikant
21. februar 2002 - 08:33 #5
Man kan ikke udfra et ugenummer alene returnere datoerne.
Det vil som minimum også kræve et årstal.
Avatar billede bak Forsker
21. februar 2002 - 09:27 #6
spm 1 og 2
Du sætter denne makro ind i ThisWorkbook og ændrer Sheet1 til aktuel arknavn.

Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!B1")) Then
Range("Sheet1!b1").Value = Format(Date, "ww")
For x = 1 To 7
    Cells(x + 1, 2) = Format(Date + x - 1, "dd-mm")
Next
End If
End Sub
Avatar billede bak Forsker
21. februar 2002 - 09:38 #7
Lige et par ændringer:
Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!B1")) Then
Range("Sheet1!b1").Value = Format(Date, "ww", vbMonday, vbFirstFourDays)
For x = 1 To 7
    Worksheets("Sheet1").Cells(x + 1, 2) = Format(Date + x - 1, "dd-mm")
Next
End If
End Sub
Avatar billede rvm Nybegynder
21. februar 2002 - 09:46 #8
Jeg ved godt du kun har et ugenummer, men du starter jo oprindeligt med en dato, som du så laver om til et ugenummer... Du må bare have en celle (eventuelt på et andet ark), hvor din dato står
Avatar billede bak Forsker
21. februar 2002 - 10:10 #9
Jeg har lavet et par ændringer mere. Makroen undersøger om der står noget i B1. Hvis ikke indsættes ugenr og datoer, ellers ikke. Dvs at første gang den åbnes indsættes det ønskede og det ændres IKKE næste gang arket åbnes. (heller ikke selvom det åbnes i uge 9)

Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!B1")) Then
Range("Sheet1!b1").Formula = "=Uge.nr(b2)"
For x = 1 To 7
    Worksheets("Sheet1").Cells(x + 1, 2).NumberFormat = "dd/mm"
    Worksheets("Sheet1").Cells(x + 1, 2) = Date + x - 1
Next
End If
End Sub
Avatar billede bak Forsker
21. februar 2002 - 10:42 #10
# Man tænker så godt når man har talt #  :-)
Makroerne virker jo kun mandag, fordi de 7 dato bliver taget fortløbende fra den dag arket bliver oprettet.
Det her er bedre:

Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!B1")) Then
Range("Sheet1!b1").Formula = "=uge.nr(b2)"
For x = 1 To 7
    y = Weekday(Date, vbMonday)
    Worksheets("Sheet1").Cells(x + 1, 2).NumberFormat = "dd/mm"
    Worksheets("Sheet1").Cells(x + 1, 2) = Date + x - y
Next
End If
End Sub
Avatar billede birkis Nybegynder
21. februar 2002 - 23:11 #11
bak >> Den siste der fungerer meget godt!  I hvert fall når jeg "Run Sub/UserForm F5"  :-)
Men den vil ikke kjøre av seg selv når regnearket åpnes...  Hva gjør jeg galt?
Avatar billede bak Forsker
22. februar 2002 - 08:07 #12
Du skal åbne VBA-editoren og finde kodemodulet der hedder ThisWorkbook og indsætte den der.
En anden valgmulighed er at indsætte den i et almindeligt modul og omdøbe koden til sub auto_open()
Avatar billede bak Forsker
25. februar 2002 - 20:08 #13
Birkis> fungerer det nu??
Avatar billede birkis Nybegynder
25. februar 2002 - 21:37 #14
Jeg forstod ikke helt hva du mente med "finde kodemodulet der hedder ThisWorkbook og indsætte den der", men jeg fikk det til nå.

Bare et spørsmål mer:
Jeg ønsker ukenummer i celle B3 og datoene i c4 til c10.  Hvordan gjør jeg det i makroen?
Avatar billede bak Forsker
25. februar 2002 - 21:55 #15
værsgo Birkis

Private Sub Auto_Open()
If IsEmpty(Range("Ark1!B3")) Then
Range("Ark1!b3").Formula = "=uge.nr(c4)"
For x = 1 To 7
    y = Weekday(Date, vbMonday)
    Worksheets("Ark1").Cells(x + 3, 3).NumberFormat = "dd/mm"
    Worksheets("Ark1").Cells(x + 3, 3) = Date + x - y
Next
End If
End Sub
Avatar billede birkis Nybegynder
25. februar 2002 - 22:05 #16
bak >>  Doh! Jeg syntes jeg hadde prøvd alt, men allikevel...  :)

Mange takk for hjelpen alle!
Avatar billede birkis Nybegynder
25. februar 2002 - 22:16 #17
Argh!!  Jeg skulle nok ha testet det siste svaret først...  :-)

bak >> 10 pts ekstra hvis du kan forklare meg hvorfor

Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!B1")) Then
Range("Sheet1!b1").Formula = "=weeknum(b2)"
For x = 1 To 7
    y = Weekday(Date, vbMonday)
    Worksheets("Sheet1").Cells(x + 1, 2).NumberFormat = "dd/mm"
    Worksheets("Sheet1").Cells(x + 1, 2) = Date + x - y
Next
End If
End Sub

gir 9 som ukenummer, mens

Private Sub Workbook_Open()
If IsEmpty(Range("Sheet1!b3")) Then
Range("Sheet1!b3").Formula = "=weeknum(c4)"
For x = 1 To 7
    y = Weekday(Date, vbMonday)
    Worksheets("Sheet1").Cells(x + 3, 3).NumberFormat = "dd/mm"
    Worksheets("Sheet1").Cells(x + 3, 3) = Date + x - y
Next
End If
End Sub

gir 09.01 som ukenummer??  Det eneste som er endret, er jo celle-referenser?

Jeg ville jo helst bare ha at der skulle stå 9...
Avatar billede bak Forsker
25. februar 2002 - 22:38 #18
Ingen ekstra point!!!
Det er fordi celle B3 har været formateret som dd-mm
Du skal bare formatere den som Standard (generel)
Bak :-)
Avatar billede birkis Nybegynder
25. februar 2002 - 23:34 #19
øv... At man alltid skal "kvaje" seg på idiot-feil...  :-)

Men enda en gang; takk for hjelpen!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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