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
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 Emne: Log Old and New cell Value
    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



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
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg 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
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

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