Just nu i M3-nätverket
Jump to content

Skapa 52 flikar med uppdatering av celler i kopierade flikarna


Looxoor

Recommended Posts

Hej!

 

Först: ursäkta för den dåliga rubriken, men kunde helt enkelt inte beskriva det bättre...

 

Nu till problemet.

 

Jag har försökt skapa ett ark för bokning av leveranstider, med veckovisa flikar.

 

Problemet är att jag finner det oerhört tidskrävande att först kopiera fliken, byta namn från Vecka 1 (2) till vecka 2 och sedan likadant från vecka 1 till vecka 2 i en cell i den nya fliken.

 

Kan man med något käckt makro skapa och uppdatera alla 52 flikarna?

 

Tack på förhand!

 

//Björn

 

Link to comment
Share on other sites

Allt går men först tänker jag ifrågasätta upplägget. :)

 

Vad har du för data på sidorna? Min enkla devis i Excel är att man så långt det går ska använda Excel som en databas. Det vill säga ha alla data i tabeller och utifrån dessa skapa rapporter.

 

Fast det ska sägas att det ibland inte är det enklaste...

 

Går det att ordna i en snygg tabell istället? Vad är det för data du har?

Kanske sedan en rapport via Pivottabell kan fungera?

 

En arbetsbok med 52 sidor blir lätt väldigt stor och väldigt tungarbetad.

 

Men vill du ha de på det viset så går det att skapa ett makro som sköter uppdateringen.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2007-11-12 13:15:15 av Monshi]

Link to comment
Share on other sites

Hej!

 

Bifogar härmed en bild för att åskådliggöra problemet.

 

Tanken är att arket skall vara delat i ett nätverket så att både butik och lager har tillgång till samma fil och kan boka in tider för leverans per vecka utan att fråga varandra...

 

Är det något mer i mitt problem jag skall förklara, eller på något annat sätt?

(Jag förstår ifall jag är lite otydlig, jag blir lätt det... =) )

 

Tack på förhand!

 

[bild bifogad 2007-11-12 13:23:24 av Looxoor]

999008_thumb.jpg

Link to comment
Share on other sites

Är det allt som ska visas/sparas.

 

Då skulle jag ge dig följande förslag

• Ett blad med en lista över bokade tider, alla tider över ett år.

 

• Ett blad med mall över vilka tider som ska vara bokningsbara. Kanske olika tider för olika veckodagar.

 

• Ett blad där man bokar tider för innevarande och kommande veckor. Fast kanske detta måste göras via formulär? Måste ju på något vis säkerställa att ingen annan bokat tiden under tiden man haft boken öppen, Ska sägas att delade arbetsböcker av denna art har jag inte så mycket erfarenhet av. Kanske att databladet med alla sparade bokningar i ligger i en enskild arbetsbok som enbart öppnas den stund som behövs för att kontrollera bokade tider resp testa att boka en tid.

 

• Ett blad med en rapport där man kan titta på vilka tider som bokats under en vecka, frekvens under månad eller liknande. (det senare ej möjligt med ditt nuvarande upplägg)

 

Egentligen är detta ett arbete som en databas kan sköta.

 

Och det ska sägas, är du nöjd med det du har, modellen du har nu, så är jag nöjd med den.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Hej!

 

Tack för intressanta tankar, men jag tror nog att jag faktiskt är nöjd med upplägget för närvarande...

 

Detta är ett litet företag med enbart 4 arbetsstationer som skall kunna komma åt boken, och jag har för mig att excel känner av om en kopia av samma dokument är öppnat på annan dator i nätverket och gör kopian(orna) skrivskyddade, så dubbelbokningar är nog inte ett jätteproblem just i detta fallet...

 

Jag vill egentligen bara skapa dessa 52 blad per automatik och automatiskt byta ut texten så att jag slipper det tidsödande jobbet med att göra det manuellt...

 

Är detta görbart?

 

Tack på förhand!

 

//Björn

 

Link to comment
Share on other sites

Visst går det

1: Skapa en mallsida, en tom bokningssida. Döp sidan till VeckoMall

2: Namnge cellen där veckonummret ska skrivas in, ex.v. rnWeek

 

Koden:

[log]Sub NewWeek()

Dim vecka As Integer

vecka = 0

On Error Resume Next

 

With Worksheets("VeckoMall")

'' hämtar senaste veckan

vecka = CInt(Mid(.Range("rnWeek"), InStr(1, .Range("rnWeek"), " ")))

vecka = InputBox("Ange nytt vekonummer", "Vecka", vecka + 1)

'' testar att blad med önskad vecka finns redan

Dim testSheet As Worksheet

Set testSheet = Nothing

Set testSheet = Worksheets("Vecka" & vecka)

On Error GoTo 0

If vecka = 0 Or Not testSheet Is Nothing Then

MsgBox "Kan ej skapa vecka , ogitlig eller finns redan", vbCritical, "Fel!"

Exit Sub

End If

.Range("rnWeek") = "Vecka " & vecka

.Copy After:=Worksheets("VeckoMall")

Worksheets(Worksheets("VeckoMall").Index + 1).Name = "Vecka" & vecka

End With

End Sub[/log]

Kopiera du och klistrar in i en modul i arbetsboken.

 

Sedan kan du lägga till en knapp på godtyckligt blad som aktiverar rutinen, lägg den inte* på bladet VeckoMall. Bladet VeckoMall kan du med fördel gömma undan.

 

* Kan låtas sig göras men då måste koden ovan ändras så att knappen inte kopieras.

 

Samt - kom inte och säg att jag inte gav förslag på en bättre och mer flexibel lösning. 52 sidor i en bok är många sidor och någon enkel metod för att sammanställa de data som matats in finns inte.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2007-11-12 16:51:25 av Monshi]

Link to comment
Share on other sites

  • 2 weeks later...

Först: Tack för hjälpen, det blev precis som jag ville! (Med lite modifikation)

 

Sedan: Jag har försökt skapa en sökfunktion med .Find, men det blir olika fel hela tiden...

 

Grundläggande vill jag att funktionen skall söka efter ett värde som matas in i en dialogruta och sedan bara markera cellen i det bladet den finns på.

 

Det är allt, och det känns verkligen inte som om det skall vara särskilt märkvärdigt, men jag får det bara inte att fungera...

 

Hjälpen till Excels VBA är av någon anledning inte installerad och skivan har jag inte (det är på jobbet), så jag kan inte få vägledning där och av massa funktioner på nätet har jag inte heller kunnat hittat livsduglig kod.

 

Tack på förhand!

 

Link to comment
Share on other sites

Sub MyFind(toFind As String)
   Dim c As Range

   Dim ws As Worksheet
   For Each ws In ThisWorkbook.Worksheets
       Set c = ws.Cells.Find(what:=toFind, lookat:=xlWhole)
       If Not c Is Nothing Then
           c.Parent.Activate
           c.Select
           Exit For
       End If
   Next ws


End Sub

 

fast, som jag sagt, 52 flikar är INTE ett bra sätt att lägga upp en bok.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...