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

 
ForumForumDiskussionerDiskussionerExcelExcelFunktion som försvannFunktion som försvann
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2018-10-31 16:09
 

 Hej!

Fick problem med en funktion då jag skulle kopiera över från excel version 2003 till 2010.

Funktionen är som följer {=summa(största(indirekt(teckenkod(kolumn(d:d)+64)&största(om(längd(d23:d1222);rad(d23:d1222));rad(1:30)));rad(1:30)))}

I excel 2003 fungerar den klockrent men i 2010 så kommer detta meddelande upp så fort jag skriver in någon data: Det gick inte att beräkna en eller flera formler eftersom systemresurserna för Excel tog slut. Jag har inga stora resurskrävande excelfiler jämfört med 2003 så det borde inte vara något problem(denna filens storlek är på lite över 400 kb).

Vad jag vill att funktionen skall göra är att summera ihop de 30 första cellerna som innehåller ett värde, med början från cell d1222 och uppåt(c:a hälften av cellerna mellan d23:d1222 är tomma).

Mvh Ingvar

Nytt inlägg
 2018-11-01 07:35
 
Hej Ingvar

Inte helt lätt att skriva en formel, så gjorde en funktion istället. Funkar fin fint.

Tryck alt f11 för att öppna vba editorn.
Högerklicka på VBAprojekt i projektfönstret, välj Insert/lägg till modul
Lägg in nedan kod i fönstret som öppnas.
Stäng editorn, spara som makro aktiverad (.xlsm)

Sedan kan du skriva =SumSpecial(J15:J24;3) i vanliga gränssnittet, där argument1 är området du vill summera nedifrån, och argument2 är hur många gånger som det ska summeras, i ditt fall blir det =Sumspecial(d23:d1222;30)

Mvh Christian


Function SumSpecial(myRange As Range, nrOfRows As Long)

Dim i, mySum As Long
Dim vnt As Variant: vnt = myRange

For i = UBound(vnt, 1) To LBound(vnt, 1) Step -1

If IsNumeric(vnt(i, 1)) And nrOfRows <> 0 And vnt(i, 1) <> "" Then
mySum = mySum + vnt(i, 1)
nrOfRows = nrOfRows - 1
End If
Next i

SumSpecial = mySum


End Function
Nytt inlägg
 2018-11-01 08:21
 

 Tackar ödmjukast, det fungerar klockrent.

Mvh Ingvar

Nytt inlägg
 2018-11-01 09:17
 

 =PRODUKTSUMMA(--D23:D1222;--(D23:D1222<>"");--(RAD(D23:D1222)>=STÖRSTA((D23:D1222<>"")*RAD(D23:D1222);30)))

Nytt inlägg
 2018-11-01 12:41
 

 Kanon, bägge lösningarna fungerar perfekt, är det någon som kan förklara varför min tidigare lösning kunde fungera klockrent i 2003 men inte i 2010 års version.

Mvh Ingvar

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelFunktion som försvannFunktion som försvann

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