Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketLog Old and New cell Value

 Besvar Besvar
Forfatter
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg Emne: Log Old and New cell Value
    Sendt: 20.Nov.2014 kl. 08:37
Hvis jeg må tillade mig, at komme med lidt indspark...

Jeg er helt enig med Allan, at .Undo ikke er særlig effektiv - ideen er god, men i praksis har .Undo alt for mange 'short commings', og jeg er selv gået helt væk fra at benytte den...
...rent faktisk er selv .SendKeys med [CTRL] + [Z] bedre end .Undo, selvom .SendKeys heller ikke er at anbefale!

Jeg har selv et log eksempel liggende på min hjemmeside, som måske også kan inspirerer dig:
www.excelgaard.dk/Bib/Logning/ www.excelgaard.dk/Bib/Logning/

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.
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 19.Nov.2014 kl. 09:30
Hej Peter,
 
Idéen med Application.Undo er egentlig meget godt tænkt, men i praksis er det ikke særlig god programmering.
 
Her er en løsning som jeg selv bruger i min log (som du i øvrigt finder her https://www.excel-regneark.dk/?pageIDX=185)
Ved at foretage nedenstående rettelser vil det virke.
 
I toppen af THISWORKBOOK indsætter du denne kodestump.
 
Public oldVal As Variant
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveSheet.Name <> "LogDetails" Then
    If ActiveCell.Address <> Target.Address Then Exit Sub
    oldVal = Target.Value
End If
End Sub
 
Koden gør i sin enkelthed det, at hver gang du aktiverer en celle, erklæres dens værdi som oldVal
Så behøver du ikke Application.Undo længere.
 
I din Workbook_SheetChange event, skal du derfor fjerne disse 3 linjer
 
Application.Undo
oldVal = Target.Value
Target = NewVal
 
Her er filen inkl ovenstående rettelser: uploads/1/LOGPJJTest1_Allan.xlsm
 
//Allan
Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 18.Nov.2014 kl. 19:19

Hej

Jeg er ved at lave en simpel ”log”, hvor der logges forskellige ting fra mit EXCEL ark.

Jeg vil gerne logge ændringer i celler, både tal og tekst. Dvs. Old value og New value

Det jeg har lavet indtil videre fungerer i princippet udmærket og gør det jeg vil have det til, men problemet er at hvis jeg ”stresser” det lidt, ved at dobbelt clicke i forskellige celler hurtigt efter hinanden kommer der er en ”Run time error  ’1004’ Method ’Undo’_Application’ failed”.

Det har selvfølgelig noget med  Application.Undo at gøre.

Jeg har prøvet forskellige ting, men uden større held L

Hvis der er nogen her, som kan hjælpe, vil jeg være meget taknemlig.

Vedhæfter lige hvad der er lavet.

Mvh.

Peter

Jeg bruger EXCEL 2010

uploads/856/LOGPJJTest1.xlsm
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk