13. maj 2018 - 09:17Der er
14 kommentarer og 5 løsninger
Log
Hvis jeg i en celle har en dato Eks. B2 og i C2,D2 osv.har 12 andre celler med måneder, fra Jan til Dec kan man så lave en formel i hver måned ala. I eks. dato i C2 er 05-01-2018 =Hvis(B2 er mellem 01 og 31- jan; så skriv datoen fra B2, eller skriv ingenting) denne formel skal så gentages for alle måneder D2, E2, F2 osv. dette skulle så gerne ligne en slags log hvor jeg kan se hvad måned der har været aktivitet, Hvis datoen i C2 ændres til en anden måned eks. 13-05-2018 så skal datoen stadigvæk huskes for jan måned, Er der hjælp at få til dette
Du skal nok ud i noget VBA. En formel vil give et andet resultat, hvis du ændrer på de data, der indgår. Så hvis der i dag er aktivitet i fx Februar, så vil denne aktivitet forsvinde, når du taster en dato i marts.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2")) Is Nothing Then maaned = Month(Target.Value) Else Exit Sub End If Select Case maaned Case Is = 1 Target.Offset(0, 1).Value = Target.Value Case Is = 2 Target.Offset(0, 2).Value = Target.Value Case Is = 3 Target.Offset(0, 3).Value = Target.Value Case Is = 4 Target.Offset(0, 4).Value = Target.Value Case Is = 5 Target.Offset(0, 5).Value = Target.Value Case Is = 6 Target.Offset(0, 6).Value = Target.Value Case Is = 7 Target.Offset(0, 7).Value = Target.Value Case Is = 8 Target.Offset(0, 8).Value = Target.Value Case Is = 9 Target.Offset(0, 9).Value = Target.Value Case Is = 10 Target.Offset(0, 10).Value = Target.Value Case Is = 11 Target.Offset(0, 11).Value = Target.Value Case Is = 12 Target.Offset(0, 12).Value = Target.Value End Select End Sub
Når du taster en dato i A2 overføres denne dato til en af cellerne B2 til M2 afhængig af måneden på den dato, du har tastet i A2.
De første linjer undersøger om der er tastet i A2. Hvis ikke afbrydes funktionen. Select Case undersøger så, hvilken måned der er tastet i, og forskyder i henhold til dette, og kopiere så den indtastede dato til den rigtige måned. B2 er januar, C2, februar og så fremdeles.
Kan ikke få det til at køre, skal datoen være i et bestemt format ? jeg kan heller ikke få koden til at blive i modulet ( excel 2016 DK) Jeg går ned på Ark fanen, vis programkode ,indsæt , module, kopierer så din formel over, lukker på rødt kryds skriver så en dato i A2 , men der sker intet
Her er en udvidet kode, der tjekker om det indtastede er en dato. Prøv om den virker. Datoen skal tastes i Excels datorformat, altså dd-mm-åååå.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then If IsDate(Target.Value) = False Then MsgBox "Der skal indtastes en dato i korrekt format: ""dd-mm-åå""", vbCritical + vbOKOnly Range("a2").Activate Exit Sub End If maaned = Month(Target.Value) Else Exit Sub End If Select Case maaned Case Is = 1 Target.Offset(0, 1).Value = Target.Value Case Is = 2 Target.Offset(0, 2).Value = Target.Value Case Is = 3 Target.Offset(0, 3).Value = Target.Value Case Is = 4 Target.Offset(0, 4).Value = Target.Value Case Is = 5 Target.Offset(0, 5).Value = Target.Value Case Is = 6 Target.Offset(0, 6).Value = Target.Value Case Is = 7 Target.Offset(0, 7).Value = Target.Value Case Is = 8 Target.Offset(0, 8).Value = Target.Value Case Is = 9 Target.Offset(0, 9).Value = Target.Value Case Is = 10 Target.Offset(0, 10).Value = Target.Value Case Is = 11 Target.Offset(0, 11).Value = Target.Value Case Is = 12 Target.Offset(0, 12).Value = Target.Value End Select Range("a2").Activate End Sub
Prøv også denne, der ikke over skrive datoen, ved ændring. Men fylder på, nedad
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2")) Is Nothing Then If IsDate(Target.Value) = False Then MsgBox "Der skal indtastes en dato i korrekt format: ""dd-mm-åå""", vbCritical + vbOKOnly Range("a2").Activate Exit Sub End If maaned = Month(Target.Value) Else Exit Sub End If Select Case maaned Case Is = 1 Target.Offset(Range("B" & Rows.Count).End(xlUp).Row - 1, 1).Value = Target.Value Case Is = 2 Target.Offset(Range("C" & Rows.Count).End(xlUp).Row - 1, 2).Value = Target.Value Case Is = 3 Target.Offset(Range("D" & Rows.Count).End(xlUp).Row - 1, 3).Value = Target.Value Case Is = 4 Target.Offset(Range("E" & Rows.Count).End(xlUp).Row - 1, 4).Value = Target.Value Case Is = 5 Target.Offset(Range("F" & Rows.Count).End(xlUp).Row - 1, 5).Value = Target.Value Case Is = 6 Target.Offset(Range("G" & Rows.Count).End(xlUp).Row - 1, 6).Value = Target.Value Case Is = 7 Target.Offset(Range("H" & Rows.Count).End(xlUp).Row - 1, 7).Value = Target.Value Case Is = 8 Target.Offset(Range("I" & Rows.Count).End(xlUp).Row - 1, 8).Value = Target.Value Case Is = 9 Target.Offset(Range("J" & Rows.Count).End(xlUp).Row - 1, 9).Value = Target.Value Case Is = 10 Target.Offset(Range("K" & Rows.Count).End(xlUp).Row - 1, 10).Value = Target.Value Case Is = 11 Target.Offset(Range("L" & Rows.Count).End(xlUp).Row - 1, 11).Value = Target.Value Case Is = 12 Target.Offset(Range("M" & Rows.Count).End(xlUp).Row - 1, 12).Value = Target.Value End Select Range("a2").Activate End Sub
Det er jo selvfølgelig noget som jeg skal bruge i et andet excel ark, i det andet ark kommer datoèn i J8, det har jeg selvfølgelig rettet i formlen , skal de 12 mdr. også ændres på en eller anden måde ?
Kan det være at det ikke virker fordi det er en formel , der frembringer datoen ?formlen ser sådan ud: =HVIS(OG('Skema A1'!$A$13="FRT";TÆL.HVIS('Skema A1'!B16:B100;"X")>0);'Skema A1'!B12;"")
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.