PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelHänvisa till en cell, på flera olika blad men på olika raderHänvisa till en cell, på flera olika blad men på olika rader
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-10-25 11:15
 

 Hej!

 

Jag har 30 blanketter, alla likadana, på 30 olika  blad. 

Jag har ett blad som ska sammanställa information från blanketterna. Varje blanket får en egen rad på sammanställings-bladet. 

På sammanställningsbladet, i tex kolumn A vill jag att den ska hämta värdet från en cell (samma på alla) på blanketterna. Blankettbladen kallas BL1, BL2 osv....

Tex:

Cell A1 på sammanställningsbladet står det ='BL1'!A1 - Den hämtar värde från cell A1 på blankett 1
Cell A2 på sammanställningsblader står det ='BL2'!A1 - Den hämtar värde från cell A1 på blankett 2
Cell A3 på sammanställningsblader står det ='BL3'!A1 - Den hämtar värde från cell A1 på blankett 3

Hur kan jag göra ='BL1'!A1 kommandot effektivt för för alla 30 blanketter och inte behöva sitta och länka manuellt. Det kommer vara fler celler på varje blankett som ska länkas till olika kolumner i sammanställningen. Jag har försökt med att "markera" ett par celler som är rätt och "dra ut" för att fylla i resterande celler men den vägrar räkna upp BL1-30.

 

Tack på förhand!
 

Nytt inlägg
 2023-10-25 15:33
 

 Det finns inte som färdig finness.  Men om dina bladnamn räknas upp med ett tal så kan du testa att sammanfoga textsjok till en adress,

=SAMMANFOGA("'BL";RAD(1:1);"'!A1")

Där RAD(1:1) används för att öka blad-värdet ett steg när du kopierar ner formeln en rad

omslut med INDIREKT() för att excel skall förstå ett det är en adress du just har klistrat ihop

=INDIREKT(SAMMANFOGA("'BL";RAD(1:1);"'!A1")).

Byt ut RAD(1:1) mot kolumn(A:A) om du istället vill öka bladnamnet med ett när du kopierar åt höger. Märkligt nog kan du inte använda SEKVENS trots att adressen ser helt rätt ut.

=SAMMANFOGA("'BL";SEKVENS(8);"'!A1")

Nytt inlägg
 2023-10-26 12:14
 

Hej Markus,

Om du använder Excel 365 för Windows eller Mac kommer här ett alternativ till att använda funktionen INDIREKT().

Funktionen INDIREKT() är en väldigt flexibel funktion som finns i alla versioner av Excel, men den har också en del tillkortakommanden.

  • INDIREKT() är en s.k. "volatile" funktion som räknar om vid varje ny beräkning i Excelarket, oavsett om vilken cell som triggar Excels omberäkningsmotor. Använder man funktionen INDIREKT() i många celler kan man därför stöta på prestandaproblem.
  • INDIREKT() fungerar inte med externa Exceldokument som är stängda.

Som sagt; om du har Excel 365 kommer här ett alternativ som fungerar både med stängda externa Exceldokument och som dessutom är dynamisk så tillvida att du kan arbeta med en eller flera kolumner samtidigt utan att behöva skriva om formeln mer än på ett enda ställe. Formeln är baserad på Excel 365's förmåga att använda 3D-referenser samt funktionen VSTACK().

Observera att arbetsbladen måste vara sorterade i namngiven ordning och finns bredvid varandra i arbetsboken för att 3D-referensen till flera arbetsblad ska fungera.

=VSTACK('BL1:BL30'!A1)

Vill du sammanställa värden i flera kolumner på en gång så är det bara att ändra cellreferensen till exempelvis A1:E1 enligt nedan.

=VSTACK('BL1:BL30'!A1:E1)
Vill du ändra på vilken ledd (vertikalt/horisontellt) som du vill sammanställa arken så är det bara att byta ut funktionen VSTACK() mot HSTACK().

=HSTACK('BL1:BL30'!A1)
Lycka till !

Nytt inlägg
 2023-10-30 06:11
 

Hej!

 

Tack för alla svar! Jag ska testa dem också faktiskt, =indirekt är en ny funktion för mig som jag redan nu kan tänka flera ställen som den kan funka på. 

För framtida sökande så kan jag ju säga att jag till slut löste problemet med ett makro som jag hittade och modifierade lite. Kanske inte korrekt kod ur kodsynpunkt men den fungerade utmärkt för mitt behov. 

Ruta = hämtade ett värde från en cell där jag skrev vilken cell i blanketterna(nedan kallat FS) som den skulle hämta värde ifrån.

Start/slut är var i sammanställningen som allt skulle redovisas. 

 

Sub vba_loop_range()

Dim iCell As Range

Dim a As Variant

Dim ruta As String

Dim start As String

Dim slut As String

Dim intervallet As String

a = 1

ruta = Range("Q2")

start = Range("Q3")

slut = Range("Q4")

intervallet = start & ":" & slut

For Each iCell In Range(intervallet).Cells

    iCell.Value = "=FS" & a & "!" & ruta

    a = a + 1
Next iCell
End Sub

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelHänvisa till en cell, på flera olika blad men på olika raderHänvisa till en cell, på flera olika blad men på olika rader

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter