14. maj 2015 - 22:15Der er
2 kommentarer og 1 løsning
Kopier ark og ændr data i celler
Hej,
Ved ikke om det er muligt. Men har lavet et ugeark (uge 20) hvor alt er sat op med datoer uge numre etc. Jeg vil så gerne kopiere dette ark så jeg ender med en fane for hver uge for dette år.
Problemet er når jeg kopiere arket til eksempelvis uge 21 så skal jeg manuelt rette datoer og uge numre. Er det ikke muligt at plusse ugenummeret med 1 for hver gang arket kopieres og tilsvarende for datoerne?
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Hvis alle dine uge ark har 2 cifre til sidst i navnet (altså 06 i stedet for blot 6) kan du bruge denne makro til at indsætte datoen for mandagen i ugen i A1 i alle ark og så kan du rette alle øvrige datoer ind efter A1:
Sub IndsaetDato() Dim WS As Worksheet For Each WS In ActiveWorkbook.Worksheets If WS.Name <> "Master" Then WS.Select Range("A1") = DateValue("jan 1,2015") + 7 * Right(WS.Name, 2) - Weekday(DateValue("Jan 1, 2015"), vbMonday) - 6 End If Next End Sub
Du skal blot huske at rette årstallet i linie 6 (2 gange) efter nytår
Hvis du i stedet vil have makroen til at kopiere Uge20-arket til Arkene Uge21 til Uge53 kan du bruge denne makro. Det er antaget a ugens begyndelsesdato står i A1 og ugenummer i A2:
Sub IndsaetArk() Dim WS As Worksheet Dim x As Date Dim y As Single Worksheets("Uge20").Select x = Range("A1") ' Ugens begyndelsesdato y = Range("A2") ' Ugenummer For Z = 21 To 53 Worksheets("uge20").Copy After:=Worksheets("Uge" & y) x = x + 7 y = y + 1 Worksheets("Uge20 (2)").Name = "Uge" & Format(y, "00") Worksheets("Uge" & y).Select Range("A1") = x Range("A2") = y Next Z End Sub
Jeg har sendt arket retur til dig med en ekstra makro, du kan bruge til næste år for at lave arkene Uge 02 til Uge 52 ud fra Uge 01:
Sub IndsaetArk() Dim WS As Worksheet Dim x As Date Dim y As Single Worksheets("Uge 01").Select x = Range("B3") ' Ugens begyndelsesdato For Z = 2 To 52 Worksheets("Uge 01").Copy After:=Worksheets("Uge " & Format(Z - 1, "00")) x = x + 7 Worksheets("Uge 01 (2)").Name = "Uge " & Format(Z, "00") Worksheets("Uge " & Format(Z, "00")).Select Range("A1") = "Uge " & Format(Z, "00") Range("B3") = x Next Z End Sub
Synes godt om
Ny brugerNybegynder
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.