Avatar billede FrederikTH Nybegynder
31. august 2012 - 11:01 Der er 9 kommentarer og
1 løsning

Datostempel i enden af række hvis rækken blev opdateret

Hej,

Jeg er rimelig okay til excel, men ny til makroer og jeg vil gerne have en makro der skriver dags dato i enden af en række, hvis noget af dataen i en række bliver ændret. Den skal altså tjekke alle celler i en række og skrive dags dato hvis en eller flere af cellerne bliver ændret.

Hvordan gør jeg det?

Med venlig hilsen,

Frederik
Avatar billede natkatten Mester
31. august 2012 - 11:43 #1
I hvilke kolonner findes data og i hvilken kolonne skal datostemplet skrives?
Avatar billede Mads Larsen Nybegynder
31. august 2012 - 11:47 #2
Her er en idé.
Koden skal gemme under Arket, ellers virker Worksheet_Change & Worksheet_SelectionChange ikke.

Dim Str As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target = Range("A1") Then
        If Not Target.Text = Str Then
        Range("A1") = Format(Now, "dd.mm.yyyy")
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Str = Target.Text
End Sub
Avatar billede Mads Larsen Nybegynder
31. august 2012 - 11:50 #3
Denne her er muligvis bedre.
5 = Kolonnen

Dim Str As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target = Cells(Target.Row, 5) Then
        If Not Target.Text = Str Then
            Cells(Target.Row, 5) = Format(Now, "dd.mm.yyyy")
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Str = Target.Text
End Sub
Avatar billede FrederikTH Nybegynder
31. august 2012 - 12:51 #4
Fungerer rigtigt godt, præcis det jeg gerne vil have! Den laver dog en fejl hvis jeg markerer flere celler: Run-time error '94': Invalid use of Null
Avatar billede Mads Larsen Nybegynder
31. august 2012 - 12:59 #5
Så skulle du gerne kunne vælge flere celler :)

Dim Str As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target = Cells(Target.Row, 5) Then
        If Not Target.Text = Str Then
            Cells(Target.Row, 5) = Format(Now, "dd.mm.yyyy")
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Cells.Count = 1 Then
        Str = Target.Text
    End If
End Sub
Avatar billede FrederikTH Nybegynder
31. august 2012 - 13:01 #6
Super, det kan jeg også nu. Får dog endnu en fejl: Run-time error 13: Type mismatch. Det sker hvis jeg prøver at slette mine indtastninger
Avatar billede FrederikTH Nybegynder
31. august 2012 - 13:02 #7
Rettelse: Får faktisk kun fejlen hvis jeg markerer flere celler og trykker delete
Avatar billede Mads Larsen Nybegynder
31. august 2012 - 13:07 #8
Den får også lige en Selection.Cells.Count :-)

Dim Str As String

Private Sub Worksheet_Change(ByVal Target As Range)
    If Selection.Cells.Count = 1 Then
        If Not Target = Cells(Target.Row, 5) Then
            If Not Target.Text = Str Then
                Cells(Target.Row, 5) = Format(Now, "dd.mm.yyyy")
            End If
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Cells.Count = 1 Then
        Str = Target.Text
    End If
End Sub
Avatar billede FrederikTH Nybegynder
31. august 2012 - 13:10 #9
Fantastisk! Så har jeg hellere ikke mere :)

Smid et svar, så får du point!
Avatar billede Mads Larsen Nybegynder
31. august 2012 - 13:21 #10
Her er et svar :)
Held og lykke med det.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester