Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Infoga datum och tid i Excel 2011 automatiskt

Tråden skapades och har fått 16 svar. Det senaste inlägget skrevs .
1

Vill ha en cell i en arbetsbok som anger datum och tidpunkt för redigering för att hålla reda på versioner. Finns det någon enkel funktion för att ange detta?

=NOW() ?

Fast den visar tiden just nu såklart.

  • Medlem
  • Stockholm
  • 2012-03-14 13:53

Labbade faktiskt med det där för några veckor sedan. Skapa en flik som heter "Changelog" i arket och lägg in nedanstående under ThisWorkbook i VB-editorn. Skall logga datum och användarnamn varje gång filen sparas...

/magnus

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sheets("Changelog").Range("C65536").End(xlUp).Offset(1, 0).Value = FormatDateTime(Now, vbGeneralDate)
Sheets("Changelog").Range("D65536").End(xlUp).Offset(1, 0).Value = Environ("UserName")

End Sub

  • Medlem
  • Hjo
  • 2012-03-14 19:58

Om man markerar cellen där man vill ha tidsstämpeln och kör macrot nedan så ändras inte värdet utan står kvar i cellen.
(funktionen NOW, kopiera och klistra in värde)

ActiveCell.Select
ActiveCell.FormulaR1C1 = "=NOW()"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub

Lämpligen gör man en knapp som är kopplad till macrot, om det var så du tänkte dig.

Jag vill egentligen bara ha en cell med tid och datum för senaste redigering. Provade det som Vips föreslog och det funkar ju men skulle vilja ha det på förstasidan, gärna på typ översta raden.

  • Medlem
  • Stockholm
  • 2012-03-14 20:58

Testa att ändra värdet inom parenteserna på Range() till cellens referens, dvs typ A1 eller liknande. Och sedan namnet på fliken i Sheets() såklart, så att det stämmer med förstasidan i din fil...

/magnus

Ursprungligen av Vips:

Testa att ändra värdet inom parenteserna på Range() till cellens referens, dvs typ A1 eller liknande. Och sedan namnet på fliken i Sheets() såklart, så att det stämmer med förstasidan i din fil...

/magnus

Tack för tipset. Blir det så att den skriver över föregående tidpunkt? Vill bara ha tidpunkt för senaste version, inte såsom nu att den lägger till en ny tidpunkt nedanför föregående varje gång man sparar.

  • Medlem
  • Hjo
  • 2012-03-18 23:22
Ursprungligen av pmarriott:

Tack för tipset. Blir det så att den skriver över föregående tidpunkt? Vill bara ha tidpunkt för senaste version, inte såsom nu att den lägger till en ny tidpunkt nedanför föregående varje gång man sparar.

Om man ändrar värdet Offset (1,0) i macrot till (0,0) så borde den vara kvar i samma cell för värdet 1,0 anger att flytta ett steg neråt men 0 steg åt höger men däremot värdet 0,1 anger ett steg åt höger men inget nedåt...tror jag att det är, bara testa.:$

Om man vill utveckla/förenkla Vips macro till det du vill pmarriott skulle man kunna göra så här:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sheets(1).Range("A1").Value = FormatDateTime(Now, vbGeneralDate)

End Sub

Då får du tidpunkten för sparande i första arkets A1 cell.

Kan du inte använda "Spåra ändringar" helt enkelt?

Ursprungligen av Richard Rönnbäck:

Kan du inte använda "Spåra ändringar" helt enkelt?

Det är en prislista som ska skickas ut till kunder. Jag vill att det ska stå i klartext i en cell uppe i ena hörnet vilken version det är.

  • Medlem
  • Stockholm
  • 2012-03-15 08:20

Har haft en mall på jobbet där man dubbelklickade i datumcellen för att uppdatera med aktuellt datum, det kanske skulle kunna vara en lösning, exakt hur det gjordes vet jag dock inte...

/magnus

Men hur går det då om en kund sparar filen lokalt? Då kommer datumet att ändras om du har ett automatiskt macro i filen och det finns snart en uppsjö av versioner på drift.

Kanske enklare att skriva in versionsbeteckningen för hand eller ha med det i filnamnet, än att komma komma ihåg att låsa cellen eller ta bort macrot.

Ursprungligen av M. Sundbom:

Men hur går det då om en kund sparar filen lokalt? Då kommer datumet att ändras om du har ett automatiskt macro i filen och det finns snart en uppsjö av versioner på drift.

Kanske enklare att skriva in versionsbeteckningen för hand eller ha med det i filnamnet, än att komma komma ihåg att låsa cellen eller ta bort macrot.

Ja, det är det som är kruxet. Kanske är det bättre att bara skriva in datumet manuellt.

  • Medlem
  • Hjo
  • 2012-03-18 23:11
Ursprungligen av pmarriott:

Ja, det är det som är kruxet. Kanske är det bättre att bara skriva in datumet manuellt.

Jag kanske förklarade lite dåligt vad mitt macro gjorde, egentligen skriver den in datumet manuellt:
Först stämplar den in tidpunkten då macrot körs, sedan tar den och kopierar det värdet och klistrar in det som vanligt text i samma cell, resultat blir datum och klockslag som är precis som om du skrivit in det manuellt, kommer aldrig att ändras för det finns inget kvar av macrofunktionen i cellen.
Varför jag gjorde den var att jag hade återkommande datuminslag som skulle noteras och då var det bra med något som stämlade datumet och tiden och som stod kvar utan att ändra sig.
Sedan kan man koppla egna knappar till macron för att underlätta.
"Men hur går det då om en kund sparar filen lokalt? Då kommer datumet att ändras om du har ett automatiskt macro i filen och det finns snart en uppsjö av versioner på drift."
Kommer inte att hända eftersom instämplingen kommer att stå i cellen som vanlig text, kvittar om man har tusen macron i filen.

I nya Excel kan man ju spara som en makrofri arbetsbok (som man kan distribuera till kund).

När det gäller spåra ändringar så kan man ställa in så att alla ändringar sparas som en lista på en egen flik, om du då länkar till den sista/första raden till en cell på första sidan borde du vara hemma.

1
Bevaka tråden