Avatar billede thue Nybegynder
13. februar 2004 - 13:59 Der er 21 kommentarer og
1 løsning

Brug af HVIS-funktionen

Heysan Alle eksperter.dk

Jeg har sjovt nok et spørgsmål.

Jeg er ved at lave et regneark til brug for tidsregistrering på min arbejdsplads. Det jeg har brug for hjælp til er HVIS-funktionen i Excel. Jeg vil lave det sådan, at hvis man skriver et stort X i eksempelvis celle C1, så udfyldes celle A1 med tidspunktet 08:00 og celle B1 med tidspunktet 16:00.

Hvordan gør jeg mon det?

Venligst
Thue
Avatar billede morten_leth Nybegynder
13. februar 2004 - 14:05 #1
øhm... har du prøvet at optage en makro også derefter lave den om til den du gerne vil have.... går ud fra du gerne vil lave det med en makro....
Avatar billede kabbak Professor
13. februar 2004 - 14:05 #2
A1  =HVIS($C1 = "X";"08:00";"")
B1  =HVIS($C1 = "X";"16:00";"")
Avatar billede jkrons Professor
13. februar 2004 - 14:06 #3
Indsæt denne formel i B1: =HVIS(A1="X";0,3333333;"")
Og denne i C1: =HVIS(A1="X";0,6666666;"")

Formater celler som klokkeslæt.
Avatar billede jkrons Professor
13. februar 2004 - 14:07 #4
kabbak-> I din løsning indsættes klokkeslæt som tekst.
Avatar billede jkrons Professor
13. februar 2004 - 14:09 #5
Til gengæld kan hjeg ikke læse indenad :-(

Mine formler skulle naturligvis have været

I B1: =HVIS(C1="X";0,3333333;"")
I A1: =HVIS(C1="X";0,6666666;"")
Avatar billede kabbak Professor
13. februar 2004 - 14:09 #6
Ikke hos mig, jeg kan regne på dem ?
Avatar billede thue Nybegynder
13. februar 2004 - 14:12 #7
Problemet er, at kolonnerne A og B normalt skal bruges til at indtaste tidspunktet for hvornår man er mødt (A) og hvornår man gik (B).

Eksempelvis:Celle A1: 08:00 og Celle B1: 17:00

Jeg vil nu lave en kolonne (fx C) hvor der kan sættes kryds hvis man har været syg eller holdt ferie. Et kryds i kolonne C skal medføre, at kolonne A og B automatisk udfyldes med timer svarende til en normal arbejdsdag.

Jeg troede, at det var mest hensigtsmæssigt at lave denne formel i kolonne D (sådan at A og B stadig er tomme og klar til at blive fyldt med klokkeslet).

Venligst
Thue
Avatar billede jkrons Professor
13. februar 2004 - 14:14 #8
Du kan ikke med en HVIS formel udfylde andre celler, end den selve formlen står i.
Avatar billede thue Nybegynder
13. februar 2004 - 14:17 #9
Hmm - løsningen virker som den skal. Men det er lidt uhensigtsmæssigt, at alle tidscellerne er fyldt med formler, der skal slettes hvis bare men har haft en helt almindelig arbejdsdag.

Kan jeg løse det?

Jeg kan ikke få jkrons løsning til at virke, men kabbak's virker hos mig!
Avatar billede kabbak Professor
13. februar 2004 - 14:19 #10
her er en automatisk, sættes i arkmodulet

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Value = "X" Then
Target.Offset(0, -2) = #8:00:00 AM#
Target.Offset(0, -1) = #4:00:00 PM#
End If
End Sub
Avatar billede jkrons Professor
13. februar 2004 - 14:19 #11
Brug bare kabbaks :-)  Men min virker nu godt nok hos mig.

Du behøbver ikke at slette formlen. Bare skriv det rigtige oveni.

Ellers skal du nok igang med noget makroprogrammering.
Avatar billede kabbak Professor
13. februar 2004 - 14:20 #12
Ps, formater cellene som klokkeslæt, ellers viser den engelsk tidsformat
Avatar billede thue Nybegynder
13. februar 2004 - 14:25 #13
Det har jeg sgu aldrig prøvet før - VBA kode!

kabbak - jeg går ud fra, at jeg bruger funktionen "VIS programkode" ved at højreklikke på fanebladet.

Jeg kan ikke få den til at virke...kan du?

Drop lige et svar forresten.
Avatar billede thue Nybegynder
13. februar 2004 - 14:27 #14
DET VIRKER SGU!!

Kan jeg sætte en ekstra linje ind så det er ligegyldigt om man bruger lille ellet stort X / x??
Avatar billede thue Nybegynder
13. februar 2004 - 14:28 #15
Og hvordan laver jeg tidsformateringen til dansk?

Target.Offset(0, -2) = #08:00#
Target.Offset(0, -1) = #16:00#

Virker ikke!
Avatar billede kabbak Professor
13. februar 2004 - 14:28 #16
ja det er korrekt at bruger funktionen "VIS programkode" ved at højreklikke på fanebladet.

Kontroller at det er det rigtige ark

den virker kun hvis du ændrer værdien til et stoer X i C kolonnen, den tjekker kun nye indtastninger.

og et svar
Avatar billede kabbak Professor
13. februar 2004 - 14:30 #17
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 then ' kolonne C
if  Target.Value = "X" or Target.Value = "x"Then
Target.Offset(0, -2) = #8:00:00 AM#
Target.Offset(0, -1) = #4:00:00 PM#
End If
end if
End Sub


Ps, formater cellene som klokkeslæt, ellers viser den engelsk tidsformat
Avatar billede jkrons Professor
13. februar 2004 - 14:33 #18
kabbak-> Dette må være nemmere:

If Target.Column = 3 And UCase(Target.Value) = "X" Then
Avatar billede kabbak Professor
13. februar 2004 - 14:34 #19
ok jkrons, du får det sidste ord ;-))
Avatar billede jkrons Professor
13. februar 2004 - 14:35 #20
:-)
Avatar billede thue Nybegynder
13. februar 2004 - 14:40 #21
Rooock and rool kabbak - det er sgu et fedt lille script.

Lige til min forståelse:

I dit første udkast skrev du:
If Target.Column = 3 And Target.Value = "X" Then

I det andet:
If Target.Column = 3 then ' kolonne C
if  Target.Value = "X" or Target.Value = "x"Then

Spørgs¨målet er: HVorfor står det " 'kolonne C "??
Avatar billede kabbak Professor
13. februar 2004 - 14:57 #22
Target.Column = 3

Column = 1 ( = A kolonnen)
Column = 2 ( = B kolonnen)
Column = 3 ( = C kolonnen)

osv.
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