Avatar billede scheler Novice
07. juni 2013 - 09:33 Der er 5 kommentarer og
1 løsning

Hvis felt ændres fra tom til tal, skal andet felt hente dags dato

Hej

Jeg har et regneark med lagertal der ændres dagligt. I dette ark skriver jeg dags dato, når jeg begynder at fylde i en given beholder. Når felt D5 ændres fra tom til et tal, skal feltet E5 hente dags dato - Hvis feltet D5 kun ændres fra et tal til et andet tal, skal E5 ikke ændre datoen.
Det samme skal gælde for rækkerne, 6,7,8,11,12,13,14 og 15
Avatar billede JeppeH Juniormester
07. juni 2013 - 12:53 #1
Udfordringen ligger i at du ønsker den skal bibeholde datoen fra det tidspunkt der kommer noget i cellen... Altså en dynamisk formel for noget der skal være statisk...

Uden tvivl vba kan løse det... men en lavpraktisk løsning er jo at man ved dagens afslutning, filtrerer på kolonnen med ny data, samt dato kolonnen uden data (så finder du på 2 sekunder dagens nye poster). Så markeres dato kolonnen og dato genvejen [CTRL] + [SHIFT] + [;] bruges til at indsætte dato udfor alle nye poster på én gang... Altså tager det manuelt kun 5 sekunder at opdatere.

Man lad os høre hvad vba-folket siger :o)

~ Jeppe
Avatar billede jens48 Ekspert
08. juni 2013 - 23:15 #2
Hvis jeg ellers har forstået dit spørgsmål rigtigt mener jeg at nedenstående kan bruges:

Public OldValue As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
OldValue = Target.Cells(1, 1).Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D5:D8,D11:D15")) Is Nothing Then
If IsNumeric(OldValue) = True And OldValue <> 0 Then
Exit Sub
End If
If IsNumeric(Target.Value) = True Then
Target.Offset(0, 1) = Format(Date, "yyyy/mm/dd")
End If
End If
End Sub
Avatar billede scheler Novice
13. juni 2013 - 09:04 #3
-> jens48

Jeg har noget stående i VBA i forvejen, og er ikke særlig skarp til at få den nye skrevet ind i en eksisterende kode. Det jeg har stående i forvejen er flg.:

Private Sub worksheet_change(ByVal Target As Range)
Rem Skrive dato i A5 når værdier i kolonne D ændres
    If Not Intersect(Target, Range("D4:D30")) Is Nothing Then
        If IsNumeric(Target) Then
            Range("A5").Value = Format(Now, "mm-dd-yyyy")
        End If
    End If
End Sub


Kan du hjælpe mig med det?
Avatar billede jens48 Ekspert
13. juni 2013 - 10:09 #4
Det din makro gør er at skrive dags dato ind i A5 hvis der indtastes en numerisk værdi i en af cellerne D4:D30 uden hensyn til hvad der stod i forvejen. Du kan slette makroen og skrive min ind i stedet.
Avatar billede scheler Novice
21. juni 2013 - 08:43 #5
Jeg vil gerne bibeholde den gamle makro også, så de skal skrives sammen så begge to virker - er det lige til højrebenet?
Avatar billede scheler Novice
14. oktober 2013 - 07:34 #6
Lukket, da der ikke er kommet noget brugbart
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

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