Om man vill skapa dagens datum automatiskt i ex. cell "A25" i excel när en annan cell blir ifylld kan man ju använda liknande formel: Kan inte exakt hur det funka i VBA men det låter som en enkel If sats Hej!:) Nej, det där beror på exakt hur du vill att det ska funka. Hej! Att lösa det med någon formel som skulle använda sig av VBA är ingen trevlig uppgift (om det ens går). kanske du kan använda nåt i stil med: Hej Niklas! Hej Martin! <b>Men Excel har väl tyvärr sina begränsningar:)</b> Hej Niklas! Fullt förståeligt att databaser tar tid, men då får man också leva med fullösningar när man använder excel som substitut.Automatiskt "Låst" datum, behöver hjälp!
=OM(C25="";"";(IDAG())). Men jag vill inte att datumet ska uppdateras varje gång jag öppnar dokumentet, utan dagens datum skall bara komma fram första gången då cell "C25" fylls i. Finns det någon lösning i VB, och i såfall hur skulle den formeln se ut?
Vänligen
AndreasSv: Automatiskt "Låst" datum, behöver hjälp!
IF Cell = Date just nu, så gör ingenting Sv:Automatiskt "Låst" datum, behöver hjälp!
Jag har provat det, men har inte löst det, eftersom den visar "Date Just nu" så fort man fyller i den andra cellen och då gör den ingenting samtidigt..blir dubbelkommando. Tror inte Excel klarar av det utan VBA:(
//AndreasSv: Automatiskt "Låst" datum, behöver hjälp!
Om du vid ett visst specifikt tillfälle vill skriva dit dagens datum, och sen alltid låta det vara samma så gör du något i stil med:
1. Skriv =DATE() i cellen.
2. Markera cellen, kopiera, klistra in special... -> värden.
Andra lösningar går att få genom att stänga av den automatiska kalkyleringen (bladuppdateringen), men det är i allmänhet ingen jättetrevlig lösning...
Beskriv mer exakt hur det ska fungera så finns det nog ett bättre sätt att lösa det.Sv:Automatiskt "Låst" datum, behöver hjälp!
Det är två typer av filer som jag vill använda mig av den funktion som även du nämner Niklas, att "datum" kommer automatiskt första gången en cell fylls i, men att det datumet sedan kvarstår. Dels en "ärendelista" samt "aktivitetslista"(mötesprotokoll). Därför blir det ganska många rader, vid vissa möten 5 tillkommande rader, andra 12..osv.
Det skulle fungera om man kopierar, klistra in special->värden, men då blir datumautomatiseringen lönlöst eftersom det manuella jobbet blir större om man klistrar in olika antal rader varje gång i en annan kolumn.
Vet inte om Excel, VBA är såpass "smart" att den bara hämtar dagens datum första gången en cell fylls i, i en annan kolumn & att den sedan "låser" det datumet?
Tack för svaren jag får:)
Vänligen
AndreasSv: Automatiskt "Låst" datum, behöver hjälp!
Metoden jag beskrev ovan var tänkt för enstaka händelser.
Jag skulle nog vilja säga att det rimligaste (om man ska använda Excel, vill säga), nog är att skapa en knapp på kalkylbladet, för varje ställe man vill klistra in datumet, och sen göra en VBA-rutin som automatiskt klistrar in det.
Jag har fortfarande inte helt klart för mig hur det ska användas. Du beskriver snarare vilka tekniska detaljer som ska fungera hur. (Det är det i särklass vanligaste problemet när det handlar om Excel-appar...)
Vem kommer få filen, hur många kommer att använda samma dokument?
Utförs beräkningar?
Är det en och samma mall för alla excelböcker?
osv.Sv: Automatiskt "Låst" datum, behöver hjälp!
<code>
Sub Worksheet_Change(Target As Range)
If Target.Address = "$C$25" Then Range("A25") = today()
End Sub
</code>Sv:Automatiskt "Låst" datum, behöver hjälp!
Jag skulle vilja använda den funktionen i många dokument. I ett fall för min egen del vill jag att den ska användas i typ aktivitetslista/dagbok där jag har en del kolumner där jag fyller i aktivitet, åtgärd, status, slutdatum...och då även uppläggningsdatum, det är då uppläggningsdatum som jag vill kommer per automatik när man fyller i aktiviteten i en annan kolumn. Sedan har vi tyvärr fortfarande många excel-dokument som användes inom företaget exempelvis loggningar av olika typer av ärenden där även en automatisering av uppläggningsdatum skulle förenkla. Vid det sista fallet är det flera personer som använder filerna.
Som du säger skulle man kunna skapa en knapp vid varje rad för uppläggningsdatum, men jag hoppades på att det på något sett kunde fyllas i per automatik, som exempelvis någon typ av "timescan" som bara hämtas en gång.
Men Excel har väl tyvärr sina begränsningar:)
Vänligen
AndreasSv:Automatiskt "Låst" datum, behöver hjälp!
Fick den inte att fungera i VBA. Excel hittade inte ens hittade inte ens makrot. Jag är inte superhaj på VBA, använt det ibland, men klistrade in det som du skrev som modul i VBA:)
Vänligen
AndreasSv: Automatiskt "Låst" datum, behöver hjälp!
Definitivt. Excel har många bra sidor, men man ska använda det på rätt sätt.
<b>I ett fall för min egen del vill jag att den ska användas i typ aktivitetslista/dagbok där jag har en del kolumner där jag fyller i aktivitet, åtgärd, status, slutdatum...och då även uppläggningsdatum, det är då uppläggningsdatum som jag vill kommer per automatik när man fyller i aktiviteten i en annan kolumn.</b>
"Per automatik" är oftast ett dåligt val i Excel, om något inte ska kunna utföras automatiskt precis när som helst.
I det fallet skulle jag skapat en knapp på verktygsfältet, kopplat till ett makro, som sätter in dagens datum i aktiv ruta. Alltså något man bara använder själv, för att det är jobbigt med kopiera-klistra in special.
<b>Sedan har vi tyvärr fortfarande många excel-dokument som användes inom företaget exempelvis loggningar av olika typer av ärenden där även en automatisering av uppläggningsdatum skulle förenkla. Vid det sista fallet är det flera personer som använder filerna.</b>
Detta är väl i princip något man helst hade lagt på en databas istället i så fall...
Det finns väl ett par halvdåliga lösningar; knappar som fyller i (en per rad, eller en för hela arket som fyller i "den längst ner", eller en för hela arket som fyller i aktiv cell), något med Worksheet_change som Martin beskrev ovan (iskerar dock att bli vldigt instabilt), eller någon fulvariant med en dold kolumn som säger FALSE om raden är ny, men TRUE om den inte är det, och sen en VBA-funktion för det. Sv:Automatiskt "Låst" datum, behöver hjälp!
Vi håller på att göra en databaslösning på mycket, men det tar en tid innan vi är där:(
Finns det någon funktion som säger False/True om raden är ny eller ej? Isåfall vore det en enkel lösning:)
Vänligen
AndreasSv: Automatiskt "Låst" datum, behöver hjälp!
<b>Finns det någon funktion som säger False/True om raden är ny eller ej? Isåfall vore det en enkel lösning:)</b>
Njae, frågan är om det är en så enkel lösning ändå. Om du tänker dig något i stil med:
=IF(raden är ny; TODAY(); något annat)
Så ser jag inte heller hur det skulle funka... problemet är att alla celler räknas om hela tiden. Så en formel funkar inte om man ska låsa något.
Ett sätt jag glömde tidigare, som i vissa avseenden är bäst, är att använda sig av ett slags formulär varje användare fyller i, som sen vid "submit" uppdaterar ett underliggande ark, och där sparar dagens datum. Det är en lösning som i mångt och mycket motsvarar en databaslösning.
Ska man ha det hyfsat rent så är den enklaste varianten jag kan komma på något i stil med följande:
1. Lägg till en ny kolumn. Den representerar om raden är gammal eller inte. Står det TRUE (eller 1 eller något annat) i den så ska värdet låsas. Du kan dölja kolumnen.
2. Lägg till ett event i VBA, antingen före save eller vid ändring. Vid varje körning av eventet kollar du om det finns någon rad som har datumet ifyllt men inte något i "kontrollkolumnen" från steg 1.
I så fall skriver du till det i kontrollkolumnen och kör copy-paste values automatiskt på datumet.
Finns så pass mycket problem att det i stort sett inte är meningsfullt att göra det om man inte har väldigt många dokument av samma typ och samma grej med datumen.