20. september 2010 - 14:02Der er
4 kommentarer og 1 løsning
VBA i Excel
Jeg har et dokument hvor jeg skrive forskellige opgaver ind i og jeg vil så gerne have en række til sidst, hvor den skriver den dato hvor jeg sidst har haft ændret den enkelte linje (opgave). Jeg har lavet et script der tjekker om cellerne i række A er tomme eller ej og hvis de ikke er tomme, skriver den dags dato i række D. Problemet her er jo at den så altid bare vil skrive dags dato, så når jeg åbner arket i morgen står der bare en ny dato hele rækken ned. Det jeg leder efter, er altså at den kun skal skifte dato, hvis jeg ændre den pågældende celle. Min kode ser pt sådan her ud:
I = 2 Dato = Now() Do While I < 50 If Ark1.Cells(I, 1) <> "" Then Ark1.Cells(I, 4) = Dato End If I = I + 1 Loop
Jeg tænker noget i tilfælde af at den kun tjekker den celle jeg pt står i, så den ikke hele tiden laver den der loop funktion. Det gør arket ret langsomt, at den konstant skal tjekke 50 celler for indhold.
Supertekst> Det var PRÆCIS sådan noget der jeg ledte efter. Post et svar, så er der point :) Jeg har dog lige rettet det lidt til, så den sletter datoen igen, hvis jeg sletter posten.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Offset(0, 3) = Format(Now, "dd-mm-yy") If Target.Cells = "" Then Target.Offset(0, 3) = "" End If End If End Sub
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.