05. juni 2009 - 10:05Der er
7 kommentarer og 1 løsning
fang tidspunkt med knap
Hejsa,
jeg sidder og roder med at få lavet et excel ark hvor vi kan tage tid på hvor langt der går med forskellige arbejdsopgaver.
Derfor vil jeg gerne have lavet en knap som fange tidspunktet knappen blev trykket på med dato, time, minut og sekund, i et felt der er x kolonner til højre for knappens placering. Og det samme med en stop knap.
mit første forsøg med en makro, har den ulempe at man skal huske at markere den rigtige celle
Jeg har lavet en start tids kollone og en stop tidskollone og io hver celle tjekker den på om der er valgt en kategori, når det sker, starter den timeren =IF(H3<>"",NOW(),"")
når man så markere feltet og trykker på en knap , fryser den tiden for start og man skal gøre det samme for at stoppe timeren i det andet felt.
Sub Macro1() ' ' Macro1 Macro ' Macro recorded 7/22/2008 by IBM_USER '' Calculate Selection.Copy Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End Sub
Jeg håber at kunne få en stump kode som kan gøre det relativt i forhold til knappens placering, så jeg kan lave en knap for hver linie - istedet for at folk skal huske at være placeret korrekt når de arbejder med arket.
Da knapperne som sådan ligger oven på regnearket, har cellerne ingen relativ placering i forhold til knapperne. Jeg vilel derfor nok gå en anden vej.
På arkets kodeark, ville jeg indlægge
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.EnableEvents = False If Target.Column = 1 Or Target.Column = 2 Then ' Din kode her Cancel = True End If Application.EnableEvents = True End Sub
Ret 1 og 2 til de to kolonner, du har starttid og sluttid i. Så skrives tiderne, når du dobbeltklikker i cellerne i stedet for at skulle oprette x antal knapper.
det er kollonerne B og C som er start og stop felterne. Men når jeg dobbelklikker sker der ikke noget. Skal jeg stadig have =IF(H3<>"",NOW(),"") stående i felterne i kollerne B og C? - det har jeg nu
Så koden ser sådant ud
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.EnableEvents = False If Target.Column = B Or Target.Column = C Then macro1 Cancel = True End If Application.EnableEvents = True End Sub
Hvis du kun skal kende tiden på kliktidspunkterne, kan du ændre til:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.EnableEvents = False If Target.Column = 2 Or Target.Column = 3 Then Target.Vaæue = Time Cancel = True End If Application.EnableEvents = True End Sub
VBA kender ikek til kolonnebogstavfer, men kun til kolonnernes numre.
JKoden skal ligge i kodearket for det ark, hvor den skal bruges. Højreklik på arkfanen og vælg vis Programkode.
Ret koden til
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 2 Or Target.Column = 3 Then Target.Value = Now Cancel = True End If End Sub
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.