Avatar billede axel21 Juniormester
14. maj 2015 - 22:15 Der 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?

Håber i forstår problemet

På forhånd tak
Jannik
Avatar billede jens48 Ekspert
15. maj 2015 - 01:18 #1
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
Avatar billede jens48 Ekspert
16. maj 2015 - 01:01 #2
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
Avatar billede jens48 Ekspert
19. maj 2015 - 19:28 #3
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
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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