betalig af feriepenge
Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=2730
Udskrevet den: 20.Feb.2025 kl. 20:40
Emne: betalig af feriepenge
Besked fra: Henrik Nielsen
Emne: betalig af feriepenge
Posteringsdato: 23.Sep.2016 kl. 07:48
jeg roder lidt med komme-gå registrering, kan der laves så dato og tid indsættes ved klik i cellen.
venlig hilsen Henrik Nielsen
|
Svar:
Besked fra: Bjarnehansen
Posteringsdato: 23.Sep.2016 kl. 10:04
Så tror jeg vi skal over i noget VBA...
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
Besked fra: froksen
Posteringsdato: 29.Sep.2016 kl. 19:16
Hej
Lidt inddirekte svar. Måske kan du bruge noget herfra: https://www.excel-regneark.dk/?pageIDX=188 - https://www.excel-regneark.dk/?pageIDX=188
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 09:18
Hej Henrik.
Nedenstående kode indsættes i VBA i den arkfane, koden skal virke på - F.eks. Ark1. Du skal dobbelt-klikke i cellen. Dobbelt-klik vil indsætte dags dato.
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsEmpty(Target) Then Cancel = True Target = Date End If End Sub | Man kan finde mange koder på Google. Koden fundet http://stackoverflow.com/questions/21606986/how-can-i-enter-a-date-into-an-excel-cell-with-a-double-click-but-have-it-only-e" rel="nofollow - HER
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Henrik Nielsen
Posteringsdato: 30.Sep.2016 kl. 09:35
Hej IB
har du en vejledning til at indsætte i VBA (er ikke så stærk i den del) har prøvet men det fungerer ikke.
venlig hilsen Henrik Nielsen
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 09:37
Denne indsætter både Dato og Tidspunkt, når der dobbelt-klikkes.
Hvis du ikke vil have sekunderne med, kan du bare fjerne :ss i koden.
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "dd-mm-yyyy hh:mm:ss") End If End Sub |
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 09:47
Mærk hele koden i forum op, ved at trække musen hen over hele teksten, mens venstre musetast holdes nede.Hold Ctrl nede og tast C = Kopiere den opmærkede tekst.
Åben VBA delen - Åben dit regneark. - Højreklik på den fane, koden skal køre på og klik på Vis programkode. - Dette åbner VBA delen.
- Sæt musen ind den store tomme rude. - Hold Ctrl nede og tast V = Indsætter den kopierede tekst. - Luk VBA delen på lukke krydset.
Dobbelt-klik i en af cellerne på fanen
Her er koden igen med Dato og tidspunkt. Men husk, det er computerens dato og tid der stemples - Hvis det ikke passer, vil der stemples en forkert dato og tid.
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "dd-mm-yyyy hh:mm:ss") End If End Sub |
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 10:06
Hvis du vil have måneden vist med bogstaver i stedet for tal, kan det sagtens ændres i kode. Det er bare denne lille del af koden, der skal ændres "d. mmmm yyyy.
dd = Datoen vises med to cifre - F.eks. 03 d = Datoen vises med et cifre - F.eks. 3 d. = Punktum efter datoen = F.eks. 3.
mm = Måned vises med to cifre = F.eks. 09 mmm = Måned vises i kort format = F.eks. sep mmmm = Måned vises i lang format = F.eks. september
yy = Årstal i kort format = F.eks. 16 yyyy = Årstal i lang format = F.eks. 2016
Du kan sætte bindestreg ind som separator eller bare et mellemrum. Det kan laves, som man vil have det til at se ud.
Dato med punktum og lang måneds- og årtalsformat.
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "d. mmmm yyyy hh:mm:ss") End If End Sub |
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Henrik Nielsen
Posteringsdato: 30.Sep.2016 kl. 10:17
Hej igen
der er noget af koden som bliver rød, når den indsættes, skal den det, det virker ikke, måske er det bare en lille detalje.
jeg bruger excel 2016
henrik
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 10:23
Har du mærket hele koden op - Kopieret den - Og indsat den i VBA, på den fane, koden skal køre på ?
- Koden skal starte med Private Sub og slutte med End Sub.- Vær sikker på koden er indsat i VBA på den rigtige fane - F.eks. Ark1
Kopier hele den blå tekst og indsæt den i VBA, som jeg bekrev oven over.Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "d. mmmm yyyy hh:mm:ss") End If End Sub
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Henrik Nielsen
Posteringsdato: 30.Sep.2016 kl. 10:24
Hej igen
jeg har flyttet på koden så linjerne står under hinanden, så nu virker det. tusind tak
kan det så også lade sig gøre at cellen låses samtidig med, så der ikke efterfølgende kan ændres på tidspunktet.
Henrik
|
Besked fra: Ib Hansen
Posteringsdato: 30.Sep.2016 kl. 11:08
Mht. at linjerne står lige under hinanden, har ingen betydning overhovedet. Man forskyder kun linjerne for bedre at have overblik over koden og hvordan den hænger sammen.
Man må bare ikke ændre på linjerne, ved foreksempel at skrive hele koden i en lang linje. Linjerne skal bare være indelt som de er.
Ja, det kan nok lade sig gøre at låse en celle, når den forlades. Jeg ved bare ikke lige hvordan.
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: excelent
Posteringsdato: 01.Okt.2016 kl. 09:47
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("G1:G20")) Is Nothing Then Exit Sub If Not IsEmpty(Target) Then Exit Sub Target = Date Target.Value = Format(DateTime.Now, "d. mmmm yyyy hh:mm:ss") End Sub
Ovenstående kode tillader dobbeltklik i G1:G20 hvis tom celle Ret til aktuel
Gnaske hvis jeg indsætter din kode i min Excel 2016 DK markeres kode linjerne med rød, dog ikke start og end sub Jeg går ud fra du laver indrykninger med Tabulator tasten ? Ved ikke hvorfor disse fortolkes forkert i xl2016
Måske Allan har de vise sten :-)
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: excelent
Posteringsdato: 01.Okt.2016 kl. 10:27
Ovenstående forhindrer at du dobbeltklikker i celle som ikke er tom Indsæt følgende kode i samme modul som får markør til at hoppe til A1 hvis celle ikke er tom
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("G1:G20")) Is Nothing Then Exit Sub If Target <> "" Then Range("A1").Select End Sub
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: excelent
Posteringsdato: 01.Okt.2016 kl. 10:29
Ret "G1:G20" til aktuel og evt også A1 hvis markør skal hoppe andetsteds
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: Henrik Nielsen
Posteringsdato: 01.Okt.2016 kl. 11:13
fantastisk forum, det jeg også søger er når dato og tid er indsat, må der ikke efterfølgende kunne skrives/rettes i cellen
venlig hilsen henrik Nielsen
|
Besked fra: Henrik Nielsen
Posteringsdato: 01.Okt.2016 kl. 11:45
det hele virker nu, kan dog ikke trække starttid fra sluttid længere, har prøvet forskellige formateringer, har fjernet sekunder da det ikke er nødvendigt.
venlig hilsen henrik nielsen
|
Besked fra: Ib Hansen
Posteringsdato: 02.Okt.2016 kl. 17:35
Excelent
Jeg fandt koden på nettet http://stackoverflow.com/questions/21606986/how-can-i-enter-a-date-into-an-excel-cell-with-a-double-click-but-have-it-only-e" rel="nofollow -
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 02.Okt.2016 kl. 18:44
Henrik
Jeg har rodet en del med tidspunkter, dog uden at have fundet de helt vise sten.
Men måske virker dette. - Højreklik på alle de celler, hvor Facit af din beregning mellem de to datoer og tidspunkter står i. - Vælg Formater celler i dropdown popup'en.- Åben fanen Tal i popup vinduet. - Vælg Brugerdefineret nederst. - Her har du nu mulighed for at vælge en masse formater eller selv skrive dem.
Prøv formatet [t]:mm - Med firkant parantes omkring t Det vil beregne det samlede antal timer der er gået mellem de to datoer og klokkeslæt. F.eks. fra 1. jan 2016 kl. 08:00 til 2. jan 2016 kl. 09:00 = 25:00 = (25 timer)
Hvis du i stedet prøver tt:mm vil det kun vise 1 time, da det er forskellen mellem kl. 08:00 og 09:00, selvom de ligger på forskellige datoer. Prøv dig frem 
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Ib Hansen
Posteringsdato: 02.Okt.2016 kl. 19:43
Henrik
Jeg har prøvet forskellige ting, der låser cellen, når der dobbeltklikkes på den og tror jeg har fundet en måde.
Denne kode forudsætter dog at hele arket er beskyttet, men de celler der må skrives i, er ubeskyttede. Når der dobbeltklikkes på en celle, vil den så også blive beskyttet.
Hvis du ikke ved, hvordan du beskytter et ark og lader celle være ubeskyttede, må du skrive tilbage.
Hvis du bruger et password, når du beskytter hele arket, ser koden lidt anderledes ud, forstået på den måde, at så skal password indskrives i koden. Her kommer begge koder.
Kode uden Password, når arket beskyttes
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '--------------------------------------------------------- ' Hvis cellen ikke er tom, hopper den til cellen til højre '--------------------------------------------------------- If Not IsEmpty(Target) Then ActiveCell.Offset(0, 1).Select ' Hvis den skal hoppe ned bruges (1, 0) End If
'----------------------------------------------------- ' Hvis cellen er tom, indsætter den dato og klokkeslæt '----------------------------------------------------- If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "d. mmmm yyyy hh:mm")
'----------------------------------------------------------------- ' Låser først hele arket op - Låser cellen - Låser hele arket igen '----------------------------------------------------------------- ActiveSheet.Unprotect Target.Locked = True ActiveSheet.Protect End If End Sub
---------------------------------------------------------------------------------------------------------------------------------
Kode med Password, når arket beskyttes Password du beskytter hele arket med, skal være fuldstændig identisk med password i koden. Password i koden indsættes de to steder i koden med rødt.
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '--------------------------------------------------------- ' Hvis cellen ikke er tom, hopper den til cellen til højre '--------------------------------------------------------- If Not IsEmpty(Target) Then ActiveCell.Offset(0, 1).Select ' Koden der hopper til højre - Hvis den skal hoppe ned bruges (1, 0) End If
'----------------------------------------------------- ' Hvis cellen er tom, indsætter den dato og klokkeslæt '----------------------------------------------------- If IsEmpty(Target) Then Cancel = True Target = Date Target = Format(DateTime.Now, "d. mmmm yyyy hh:mm")
'----------------------------------------------------------------- ' Låser først hele arket op - Låser cellen - Låser hele arket igen '----------------------------------------------------------------- ActiveSheet.Unprotect Password:="HER SKRIVES PASSWORD" Target.Locked = True ActiveSheet.Protect Password:="HER SKRIVES PASSWORD" End If End Sub
Se om det virker 
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Henrik Nielsen
Posteringsdato: 02.Okt.2016 kl. 22:07
hej
har rodet med at formaterer cellerne til [t]:mm men kan ikke få den til at tælle timer, det kan dog godt lykkedes hvis det kun er tiden som står i de celler som skal tælles samme, men når datoen kommer på så vil den ikke.
bruger excel 2016
venlig hilsen Henrik Nielsen
|
Besked fra: Henrik Nielsen
Posteringsdato: 02.Okt.2016 kl. 22:17
Hej igen
hvordan tildeler man alle de behjælpelige herinde point.
Henrik
|
Besked fra: EXCELGAARD
Posteringsdato: 03.Okt.2016 kl. 09:04
Tryk på [Tak] knappen, ud for de indlæg, som du kan bruge - så får de vist hver 2 point hver.
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
Besked fra: Bjarnehansen
Posteringsdato: 03.Okt.2016 kl. 10:46
prøv at /topic662.html - upload dit ark så vi kan se på det....
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
Besked fra: Ib Hansen
Posteringsdato: 03.Okt.2016 kl. 13:31
Jeg ved ikke om du vil have den til at hoppe en celle til højre, hvis der står dato/tid i cellen. Eller om den skal beskytte cellen, når der dobbeltklikkes på den.
Men dette vedhæftede eksempel hopper til højre - Altså ingen beskyttelse.
Download, åben og test det.
Download uploads/1125/Indsæt_dato-tid_med_dobbeltklik_i_celle.xlsm" rel="nofollow - KLIK HER
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Henrik Nielsen
Posteringsdato: 03.Okt.2016 kl. 15:54
uploads/208/time_-sag.xlsm" rel="nofollow - time_-sag.xlsm
|
Besked fra: Ib Hansen
Posteringsdato: 03.Okt.2016 kl. 18:01
Kolonnerne E:F:G er formateret rigtigt hele vejen ned, men du kan ikke have Kl: med i formateringen. Excel tror Kl: er en del af koden og så kan den ikke finde ud af at trække de to tidspunkter fra hinanden.
Det eneste jeg har ændret i VBA er en enkelt linje.
Denne linjeTarget.Value = Format(DateTime.Now, "d. mmmm yyyy kl: hh:mm")
Er ændret til Target = Format(DateTime.Now, "mm-dd-yyyy hh:mm") |
Jeg har ladet linjen stå i VBA. Den er grøn og du kan selv slette den.
Bemærk at d. mmmm yyyy er ændret til mm-dd-yyyy i formlen. Det er fordi datoen i VBA skal skrives i engelsk format (måned-dato-år), for at VBA kan finde ud af det.
Hvis man ikke skriver datoen i engelsk format, vil 3/10 (3. okt) blive til 10/3 (10. mar) i cellen. Datoformatet rettes herefter til i cellen, så den vises i dansk format. Dette med datoformatet i VBA, havde jeg glemt i farten  uploads/1125/Ib_time_sag.xlsm" rel="nofollow - Download her
Ib
------------- Excel 2010 Dk og 2019 Dk på samme computer. Bruger dog stadig mest 2010.. Men sådan er der jo så majet :o)
|
Besked fra: Bjarnehansen
Posteringsdato: 03.Okt.2016 kl. 22:29
uploads/397/time_-sag_bj.xlsm" rel="nofollow - uploads/397/time_-sag_bj.xlsm
------------- Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
Besked fra: Henrik Nielsen
Posteringsdato: 13.Okt.2016 kl. 19:54
Hej igen og tusind tak for hjælpen, nu er jeg så nået så langt at jeg skal til at tælle timer sammen på hver enkelt projekt. det skulle gerne være således sum at celler i G sammentælles hvis f.eks. ('1'!B7)= (Projekter!A3) venlig hilsen Henrik Nielsen
|
Besked fra: Henrik Nielsen
Posteringsdato: 14.Okt.2016 kl. 16:54
Så er jeg kommet lidt videre. =LOPSLAG(A4;'1'!B7:G35;6;FALSK) den del fungerer, men der skal også laves en sortering og sammentælling, har lavet dette forsøg på sortering, =LOPSLAG(A3;'1'!B7:G34;6;FALSK)=HVIS('1'!C7;)=Opgaver!B3 og en del andre, men uden held desværre. Er der nogen som kan se hvad der er galt.
venlig hilsen Henrik Nielsen
|
|