Just nu i M3-nätverket
Gå till innehåll

Hjälp med sammanställning av lista i Excel


mr Nobody
 Share

Rekommendera Poster

Hej.

 

Jag håller på med att försöka få iordning en arbetsbok i Excel där man ska kunna lägga in praktikloggar (bilden märkt "Mall") för varje vecka på en medarbetare för att sen ha ett huvudblad (bilden märkt "Sammanställning") där allt sammanställs.

Vad jag har läst mig till här på forumet så är det lättast att göra detta i VBA. Dock har jag knappt hållit på med VBA själv så ni får ha lite överinseende med hur koden ser ut, det går säkert att städa upp 

och snygga till den samt göra den mer effektiv om man har större kunskaper en vad jag har.

Jag hittade en kod i forumet i VBA som jag har lyckats anpassa så att jag just nu får en rad från varje praktiklogg att sammanställas på huvudbladet. Problemet är att det är ju flera rader på varje

praktiklogg och antalet rader skiljer sig också åt för varje praktiklogg. Det jag skulle behöva hjälp med är att få programmet att få med de andra raderna också.

 

Vad jag tror att man behöver så är det en till variabel som agerar räkneverk för antalet rader som är på första bladet som räknar ner hur många gånger man behöver repetera innan man går vidare till

nästa blad och i samma veva som man går över till nästa blad så ställs räkneverket om till hur många rader det finns på nästa blad och så vidare.

Området som man kan fylla i på praktikloggen kommer att vara konstant då dem bladen kommer att vara delvis låsta för redigering. I det här fallet vid sammanställningen så gäller det område B8:K45.

 

Hur koden ser ut så står den lite längre ner. 

 

Sub Sammanställning_objekt()

 

Dim i As Integer

Dim j As Integer

Dim iStartblad As Integer

Dim rDatum As Range

Dim rSMPnr As Range

Dim rObjektslag As Range

Dim rBesiktningstyp1 As Range

Dim rBesiktningstyp2 As Range

Dim rBesiktningstyp3 As Range

Dim rObserverat As Range

Dim rMedverkat As Range

Dim rSjälvständigt As Range

Dim rAvrapporterat As Range

 

'var skall listan landa (startpunkter)

 

Set rDatum = ActiveWorkbook.Worksheets("Sammanställning").Range("A8")

Set rSMPnr = ActiveWorkbook.Worksheets("Sammanställning").Range("B8")

Set rObjektslag = ActiveWorkbook.Worksheets("Sammanställning").Range("C8")

Set rBesiktningstyp1 = ActiveWorkbook.Worksheets("Sammanställning").Range("D8")

Set rBesiktningstyp2 = ActiveWorkbook.Worksheets("Sammanställning").Range("E8")

Set rBesiktningstyp3 = ActiveWorkbook.Worksheets("Sammanställning").Range("F8")

Set rObserverat = ActiveWorkbook.Worksheets("Sammanställning").Range("G8")

Set rMedverkat = ActiveWorkbook.Worksheets("Sammanställning").Range("H8")

Set rSjälvständigt = ActiveWorkbook.Worksheets("Sammanställning").Range("I8")

Set rAvrapporterat = ActiveWorkbook.Worksheets("Sammanställning").Range("J8")

 

'ange vilket som är det första databladet (nr i ordningen)

iStartblad = 4

 

j = 1

  

For i = iStartblad To ActiveWorkbook.Worksheets.Count

rDatum.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("B8").Value

rSMPnr.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("C8").Value

rObjektslag.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("D8").Value

rBesiktningstyp1.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("E8").Value

rBesiktningstyp2.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("F8").Value

rBesiktningstyp3.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("G8").Value

rObserverat.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("H8").Value

rMedverkat.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("I8").Value

rSjälvständigt.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("J8").Value

rAvrapporterat.Offset(j, 0).Value = ActiveWorkbook.Worksheets(i).Range("K8").Value

j = j + 1

Next

End Sub

 

 

Sen en annan sak, jag ska även ha ett blad där alla kommentarerna sammanställs (se bild märkt "Kommentarer"). Grundkoden kan jag använda den jag redan har och bara anpassa den då det bara är en cell från varje blad som skall hämtas. Vad jag mer skulle vilja är att man automatiskt fyller i från vilket blad kommentaren kommer ifrån i A-kolumnen medans i B-kolumnen så kommer själva kommentaren.

Sen skulle jag också vilja att i cellen med kommentarerna så skall texten vara Radbruten och att radhöjden justeras automatiskt efter hur mycket text det är i kommentaren så att man kan läsa allt som står i varje cell.

Problemet med den automatiska radhöjdsanpassningen så består cellen i B-kolumnen av sammansatta celler och vad jag har förstått så har Excel problem med det.

Vad jag har lyckats läsa mig till så går det att ordna detta med hjälp av lite VBA-kod men har tyvärr inte lyckats med detta själv.

I exemplet nedan har jag använt mig av formler direkt i bladet och sen justerat radhöjden manuellt men det ser inte så snyggt ut som det är just nu och det är lite jobb med att få det någorlunda bra. Vill helst att detta skall ske automatiskt då det kommer vara andra som kommer att använda dessa blad också. 

 

Hoppas jag kan få lite hjälp med detta för mig stora problem. 

 

 

Mall (1).jpg

Kommentarer.jpg

Sammanställning.jpg

Länk till kommentar
Dela på andra webbplatser

Som jag sa så är det första gången jag håller på med VBA men tack för all hjälp. Nu funkar allt klockrent med den nya koden. Fick även till det med autojusteringen också.

Redigerad av mr Nobody
Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...