02. december 2008 - 19:03Der er
20 kommentarer og 1 løsning
Formel med =IDAG()
Hej herinde. Jeg har brug for lidt hjælp. Sikkert ikke et problem for jer. I A1 har jeg =HVIS(B1<>"";(IDAG());"") I A2 =HVIS(B2<>"";(IDAG());"") Når jeg skriver noget i B2 ændre datoen i A1 sig også. Jeg gerne have at datoen som stod i A1 ikke ændre sig, men bliver på den dato den stod på. Er det til at forstå? Ellers skriv. Hilsen Ib
Du skal nok ud i noget makro, for at få det til at virke. Formler vil altid blive opdateret, npr der ændres i arket.
Følgende i arkets modulark kan gøre det.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("b1:b2")) Is Nothing Then Target.Offset(0, -1).Value = Date End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("b1:b2")) Is Nothing Then If IsEmpty(target.offset(0, -1) then Target.Offset(0, -1).Value = Date End If End If End Sub
Desværre det virkede heller ikke. Sig mig gør jeg det rigtig. Kopierer koden.- Højreklik på ark fanen (Ark1)- Vis programkode.- Insert - Module - Paste. - Gem.? Ib
Måske er min forklaring ikke god nok. Prøver lige en anden. I A1 har jeg min formel med IDAG. I B1 skriver jeg en kurs ind. I C1 regner den så kursværdien ud for den dag. Næste dag skriver jeg en ny kurs ind i B2. - ny kursværdi udregnes i C2 og ny IDAG i A2. Nu sker der så desværre det at Datoen i A1 ændres til IDAG. Den skulle jo gerne forblive datoen i går. Jeg skulle jo gerne i morgen og fremover kunne gøre det samme hver dag, uden at den "gamle dato" ændres. Er denne forklaring bedre? Ib
Hej kabbak. Jeg er ikke særlig god til det med koder og hvor de skal sættes ind. Nu har jeg gjort som du sagde, men jeg kan jo først afprøve det efter kl. 24. jkrons jeg forstår ikke det du siger at jeg skal fjerne IDAG() for det går jo netop ud på at når jeg skriver noget i B1 o.s.v. skal dags dato komme op i A1 o.s.v. Jeg har prøvet at fjerne det men så sker der noget med at jeg kommer ind i koden, og noget med debugging. Jeg forstår det ikke. Ib
Nej det virkede ikke. Datoen i A1 skiftede efter kl. 24. Da jeg skrev en ny kurs i B2 kom jeg ind i koden, og der kom en box frem hvori der stod compile error og syntax error. Linien "If IsEmpty(target.offset(0, -1) then" var farvet blå. Er det ikke også mærkeligt at denne linie når jeg bare går ind og kikker i koden er teksten med rød farve. Ib
Ib --> Der skal ikke være nogen IDAG(), fordi koden selv indsætter en dato i A, når du skriveri B. Altså, når du indtaster en kurs i B1, indsættes en dato i A1. Når du indtaster en kurs i B2, indsættes en dato i A2. Den oprindelige kode gjorde at disse datoer først bliver ændret næste gang, du taster noget i enten B1 eller B2. Den seneste kode bevirker, at de ikke ændres igen - selvom du taster i B1 eller B2.
Når den er rød i sidste omgang, skyldes det, at der manglede en parentes. Den skulle have set sådan ud.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("b1:b2")) Is Nothing Then If IsEmpty(Target.Offset(0, -1)) Then Target.Offset(0, -1).Value = Date End If End If End Sub
Så længe du har en IDAG() formel i en celle, vil datoen ændre sig her, når datoen skifter.
I stedet for at vente til efter midnat, kan du ændre pc'ens dato, afprøve regnearket og så ændre datoen tilbage igen.
Hej Jan. Du har gjort det igen. Nu virker det perfekt. Det hjalp med en parentes og sletning af IDAG. Jeg vidste ikke det med den røde skrift, og kabbak tak for at du fortalte hvor koden skulle være. Jeg lærer noget hele tiden her inde. Jeg synes at jkrons bør have points da han var den som kom med koden, men kabbak endnu en gang tak for din hjælp. jkrons send et svar.
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.