03. marts 2011 - 09:08Der er
9 kommentarer og 1 løsning
excel springe et fælt over (macros)
hej jeg har mit excel ark som skriver en tid når jeg åbner det og skriver en anden tid når jeg lukker det bruger det til at holde styr på mine arbejdstimer
KODE:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Men nu kunne jeg godt tænke mig af lave det lidt smartere sådan efter en uge af det så sprang et fælt over så det er lidt nemmere at læse men andre gange skal den springe mere over ved fx ferie og sådan noget ved ikke hvor nemt det er og lave
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim RK As Long, X As Byte If Weekday(Date) = vbMonday Then X = 1 'hopper en linje over hver mandag RK = Sheets("Arbejdstimer 2011").Range("D" & Rows.Count).End(xlUp).Row + X Sheets("Arbejdstimer 2011").Range("d" & RK + 1) = Now() End Sub
Private Sub Workbook_Open() Dim RK As Long, X As Byte X = 0 If Weekday(Date) = vbMonday Then X = 1 ''hopper en linje over hver mandag RK = Sheets("Arbejdstimer 2011").Range("B" & Rows.Count).End(xlUp).Row + X Sheets("Arbejdstimer 2011").Range("B" & RK + 1) = Now() End Sub
mange tak for løsningen kabbak men hvad med de da dage hvor jeg holder ferie der vil jeg jo gerne til af springe de felter ferien vare fx. hvis jeg har ferie i 3 dage skal den springe 3 felter over. er mugligt og lave ?
jeg har kun dansk version, men =DATO(;MÅNED(IDAG());DAG(IDAG()))-DATO(;MÅNED(1);DAG(1)) giver fx 63 for i dag, og så skal den bare skrive i linje 63. det bliver så til
Private Sub Workbook_BeforeClose(Cancel As Boolean)
bemærk at år ikke er med i beregning - så tager den år 1900, og det er et skudår, så feb er på 29 dage - på den måde vil 1. marts altid stå i samme række år for år.
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.