Avatar billede andql Nybegynder
16. februar 2006 - 20:08 Der er 10 kommentarer og
1 løsning

Hvordan laver jeg en historik over en specik celle?

Hejsa!

Jeg er ny herinde og håber inderligt at der nogle som gider hjælpe mig med et irriterende problem.

Mit Problem:

Jeg har en specifik celle som løbende ændre sig(Gennemsnit af anskaffelsessumen på en beholdning), og jeg ønsker i den forbindelse at holde styr på disse ændringer. Jeg forestiller mig at ændringer i denne specifikke celle, øjeblikkeligt resultere i at værdien af den pågældende celle bliver ført over i et nyt ark. Dette ark kunne hedde " Gennemsnit" Disse ændringer skal posteres i en kolonne sammen med tid/dato/år, fra hvornår ændringen skete. På den måde kan jeg kigge tilbage i tiden og se hvad gennemsnittet har været.
Jeg har prøvet at kigge tidligere spm. igennem, men synes ikke at jeg stødte på megen hjælp der.

På forhånd tak

Venlig hilsen

Anders - Hjælp...:-)
Avatar billede bak Forsker
16. februar 2006 - 20:24 #1
Kender du lidt til vba
Avatar billede brynil Nybegynder
16. februar 2006 - 20:27 #2
Hvis du kan det, så kan du jo prøve at gå videre med denne:

Dim tg
Dim oldVal

Private Sub Worksheet_Change(ByVal Target As Range)
tg = Target.Address

If tg = "$A$1" Then
        MsgBox oldVal ' gem i andet ark
End If

oldVal = Range("A1").Value

End Sub

Men det kan være bak kender en bedre måde. :)
Avatar billede bak Forsker
16. februar 2006 - 20:40 #3
Brynil -> Det kommer lidt an på hvordan man ser på det. Din metode virker fint hvis nogen ændrer i A1, men hvis A1 er en formel =MIDDEL(Omr) vil ingen ændre den. Derfor har jeg brugt WorkSheet_Calculate, og chekker for ændring i formelcellen ved hver calculation. Det er noget mere besværlig men virker :-)

1. Opret et almindeligt modul og indsæt dette

Public MyAverage As Double

Sub auto_open()
  MyAverage = Worksheets("Ark1").Range("E1")
End Sub


2. I arket med gennemsnitsformlen indsættes dette i arkets eget kodemodul (højreklik på en arkfane og vælg "Vis programkode". Indsæt så dette.

Private Sub Worksheet_Calculate()
Dim rng As Range
  If Range("E1") <> MyAverage Then
      MyAverage = Range("E1")
      Set rng = Worksheets("Gennemsnit").Range("A65535").End(xlUp).Offset(1, 0)
      rng = Date
      rng.Offset(0, 1) = MyAverage
  End If
End Sub


"E1" skal ændres til din formelcelle og "Gennemsnit" skal ændres til det ark du ønsker at indsætte loggen i.
Avatar billede andql Nybegynder
16. februar 2006 - 20:41 #4
Jeg har programmeret en del i vba, men det typisk foregået med copy/paste:-) Jeg har kigget på et spørgsmål her i denne kategori "hvordan kan jeg se hvem der har rettet i et enkelt ark?" og deri troede jeg løsningen lå, men desværre. Før at programmet fangede ændringerne skulle de indtastet manuelt. Den celle som jeg ønsker at lave historik over, ændre sig jo på baggrund af andre faktorer og ikke ved manuel påvirkning så at sige....

Tak for den hurtige responstid:-)
Avatar billede andql Nybegynder
16. februar 2006 - 20:42 #5
Tusind tak Bak.

Jeg vender lige tilbage, når jeg har testet det.....
Avatar billede brynil Nybegynder
16. februar 2006 - 20:44 #6
Smart ;)
Avatar billede andql Nybegynder
16. februar 2006 - 22:54 #7
Så er det testet!
Jeg er meget imponeret, mange tak for hjælpen:-)
Er det muligt at få et klokkeslæt sammen med dato og årstal? Det ville være perfekt.....
Hvordan giver man dise point for øvrigt? medmindre at du heller vil have en kasse øl:-)
Avatar billede kabbak Professor
16. februar 2006 - 22:56 #8
rng = now
Avatar billede bak Forsker
16. februar 2006 - 23:02 #9
Yes
  rng = Date
ændres til
  rng = Now

Ja, jeg vil hellere have øl, men må nok nøjes med points :-)
Avatar billede andql Nybegynder
16. februar 2006 - 23:14 #10
Det er fair nok! Point hermed sendt afsted....

Godaften.
Avatar billede andql Nybegynder
16. februar 2006 - 23:28 #11
Jeg ved godt udemærket godt at det er på falderebet, men hvad nu hvis jeg gerne vil have den sidste ændring til altid at stå øverst i kolonnen? Jeg fusker med noget faldende sortering, men det går i ged hver gang der kommer nye poster ind i kolonnen....Er der en smart linie man kan skrive ind i Vba?

Håber at i vil bære over med mig:-)

Min nuværende bibel Sharon Podlin - Excel 2003- programmering med vba er ikke til megen hjælp i dette tilfælde....
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