Avatar billede tvc Seniormester
16. december 2006 - 16:47 Der er 15 kommentarer og
1 løsning

Dato skal vises i statuslinjen

Hej

Jeg har et ark hvor jeg i følgende kolonner har følgende data stående i:

A Ugenummer
G Timer for mandag i ugenummeret
H Timer for tirsdag i ugenummeret
I Timer for onsdag i ugenummeret
J Timer for torsdag i ugenummeret
K Timer for fredag i ugenummeret
L Timer for lørdag i ugenummeret
M Timer for søndag i ugenummeret

Jeg har ligeledes en celle indeholdende årstallet - celle Tår.

Jeg vil gerne i statuslinjen kunne se hvilken dato jeg står på når jeg eksempelvis står i kolonne J (torsdag i ugen).

Jeg er ikke godt nok hejjem i VBA til at kunne udarbejde funktionen selv, så jeg håber der er en der kan hjælpe.

Med venlig hilsen

TVC
Avatar billede excelent Ekspert
16. december 2006 - 17:43 #1
indsæt i arkets kodemodul

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub
Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
End Sub
Avatar billede tvc Seniormester
16. december 2006 - 18:06 #2
Excelent

Det ser jo rigtig godt ud men hvordan får jeg den til at virke på alle kolonnerne G-M?

Jeg har forsøgt men det virker ikke:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
    If Not Intersect(Target, Range("G:G")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("I:I")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("J:J")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
        If Not Intersect(Target, Range("K:K")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("M:M")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
   
End Sub
Avatar billede tvc Seniormester
16. december 2006 - 18:08 #3
Så virker den!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
    If Not Intersect(Target, Range("G:G")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 1, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 2, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("I:I")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 3, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("J:J")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
        If Not Intersect(Target, Range("K:K")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 5, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 6, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("M:M")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 7, "dd-mm-yyyy")
    End If
   
End Sub
Avatar billede excelent Ekspert
16. december 2006 - 18:13 #4
yeps :-)
Avatar billede excelent Ekspert
16. december 2006 - 18:16 #5
du kan også blot gøre sådan:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub
Application.StatusBar = Format(DateSerial(Year(Now), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 4, "dd-mm-yyyy")
End Sub
Avatar billede tvc Seniormester
16. december 2006 - 18:19 #6
Og så ikke helt.....

Jeg mangler at få Year(Now) erstattet med Tår, hvilket jeg har forsøgt i nedenstående men det virker ikke.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

TYear = Range("Tår").Value


Application.StatusBar = ""
    If Not Intersect(Target, Range("G:G")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 1, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 2, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("I:I")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 3, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("J:J")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 4, "dd-mm-yyyy")
    End If
        If Not Intersect(Target, Range("K:K")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 5, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 6, "dd-mm-yyyy")
    End If
    If Not Intersect(Target, Range("M:M")) Is Nothing Then
        Application.StatusBar = Format(DateSerial(Year(TYear), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + 7, "dd-mm-yyyy")
    End If
   
End Sub
Avatar billede excelent Ekspert
16. december 2006 - 18:20 #7
har du årstal i en celle?
Avatar billede tvc Seniormester
16. december 2006 - 18:20 #8
Den ser noget lettere ud så den tager jeg ;-)

Har du til sidst en løsning på året?
Avatar billede tvc Seniormester
16. december 2006 - 18:21 #9
Ja i en celle jeg har navngivet Tår.
Avatar billede excelent Ekspert
16. december 2006 - 18:21 #10
ja hvor har du årstal?
Avatar billede excelent Ekspert
16. december 2006 - 18:22 #11
sådan:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub
Application.StatusBar = Format(DateSerial(Year(Tår), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 4, "dd-mm-yyyy")
End Sub
Avatar billede excelent Ekspert
16. december 2006 - 18:26 #12
og dog - kikker lige på det
Avatar billede excelent Ekspert
16. december 2006 - 18:40 #13
kan du ikke henvise til cellen - ret C1 til din celle
ved ikke lige hvordan man fanger et defineret navn

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub
Application.StatusBar = Format(DateSerial(Range("C1"), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 6, "dd-mm-yyyy")
End Sub
Avatar billede excelent Ekspert
16. december 2006 - 18:53 #14
så ser det ud til det virker, Tår skulle være i ""

Application.StatusBar = Format(DateSerial(Range("Tår"), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 6, "dd-mm-yyyy")
Avatar billede tvc Seniormester
16. december 2006 - 20:23 #15
Tak den virker fint nu - tak for hjælpen.

Lægger du et svar.

------------------

Endelig version:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = ""
If Intersect(Target, Range("G:M")) Is Nothing Then Exit Sub
Application.StatusBar = Format(DateSerial(Val(Ark2.Range("Tår")), 1, 1) + ((Cells(Target.Row, 1) - 1) * 7) + Target.Column - 6, "dd-mm-yyyy")
End Sub
Avatar billede excelent Ekspert
16. december 2006 - 20:24 #16
ok velbekom
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