Gå til innhold

Datostempling bak hver celle


Trelkrok

Anbefalte innlegg

Hei, gjelder makro i norsk Excel 2010

 

Hvis celle B6 endres vil jeg ha stemplet dato i C6

Hvis celle B7 endres vil jeg ha stemplet dato i C7 osv

 

Hvis celle D6 endres vil jeg ha stemplet dato i E6

Hvis celle D7 endres vil jeg ha stemplet dato i E7 osv

 

Det vil si dato bak hver celle som blir endret (hvite felter) se vedlegg.

 

Noen som kan hjelpe meg med en makro som gjør dette?

 

Mvh

RA

Test med datostempling.xlsx

Lenke til kommentar
Videoannonse
Annonse

Hei

 

Aller først: Du kan ikke ha makroer i en xlsx-fil. Det filformatet er laget for at det er garantert makrofritt, noe finansverdenen har bedt om. Du må lagre som makroaktivert xlsm.

 

Så, høyreklikk arkfanen, Vis Kode / View Code.

 

I rullefeltene over den hvite modulen, velg Worksheet i den venstre og Change i den høyre. Da opprettes en tom makro som kjører hver gang du endrer innholdet i en eller flere celler. Fyll inn så den blir seeende slik ut:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1).Column = 4 Then 'Bare kolonne D
    Target(1).Offset(0, 1).Value = Date 'Dato
    'eller
    'Target(1).Offset(0, 1).Value = Now 'Dato-klokkeslett
End If
End Sub

Så blir jeg forvirret av vedlegget ditt. Du eksemplifiserer bare kolonne D (som er kolonne 4), men det kan se ut som du også vil at det skal skje videre mor høyre i de fargede cellene. Da skal If-setningen se slik ut i stedet:

If Target(1).Column Mod 2 = 0 Then 'Annenhver kolonne

Beste hilsen Harald

Lenke til kommentar

Hei

 

Aller først: Du kan ikke ha makroer i en xlsx-fil. Det filformatet er laget for at det er garantert makrofritt, noe finansverdenen har bedt om. Du må lagre som makroaktivert xlsm.

 

Så, høyreklikk arkfanen, Vis Kode / View Code.

 

I rullefeltene over den hvite modulen, velg Worksheet i den venstre og Change i den høyre. Da opprettes en tom makro som kjører hver gang du endrer innholdet i en eller flere celler. Fyll inn så den blir seeende slik ut:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1).Column = 4 Then 'Bare kolonne D
    Target(1).Offset(0, 1).Value = Date 'Dato
    'eller
    'Target(1).Offset(0, 1).Value = Now 'Dato-klokkeslett
End If
End Sub

Så blir jeg forvirret av vedlegget ditt. Du eksemplifiserer bare kolonne D (som er kolonne 4), men det kan se ut som du også vil at det skal skje videre mor høyre i de fargede cellene. Da skal If-setningen se slik ut i stedet:

If Target(1).Column Mod 2 = 0 Then 'Annenhver kolonne

Beste hilsen Harald

Hei, og TAKK for svar. Kopierte bare inn fra en makroaktivert xlsm til en ny bok, derfor xlsx-fil.  :huh:

 

Beklager litt klønete framstilling, men dine antagelser om om at det skal skje vider til høyre er helt korrekt.   :)

 

Funker topp, men hvis jeg sletter innholdet i det fargede rutene står forsatt datoen bak. Er det mulig og få til så datoen da blir borte hvis innholdet slettes? (nullstilling av rad)?

 

Kan forøvrig nevne at fargene kommer av betinget formatering, 5=rød, 4=blå, 3= gul, 2=grønn og 1=grå

og indikerer behov for bistand til personen på den raden.

 

Mvh

RA

Endret av Trelkrok
Lenke til kommentar

Så bra.

Det løser vi med en enkel If:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1).Column Mod 2 = 0 Then 'Annenhver kolonne
    If Trim(Target(1).Value) = "" Then 'tom eller space
        Target(1).Offset(0, 1).Value = "" 'blank
    Else
        Target(1).Offset(0, 1).Value = Date 'Dato
    End If
End If
End Sub

Litt teori: Target er det som endres. Oftest er det en celle. Men ved innliming kan det være et helt celleområde, og et celleområde har ikke en Value, og så havarerer hele greia. Derfor jobber vi med Target(1) som er den første cella i området -og som oftest den eneste. En annen løsning kan være å loope hver celle i Target.

 

Beste hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...