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

 
ForumForumDiskussionerDiskussionerVBAVBAHur kan jag manipulera Excelfunktioner som ex. =MEDEL() via VBAHur kan jag manipulera Excelfunktioner som ex. =MEDEL() via VBA
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-05-24 23:57
 
Hej. Jag vill ha förslag på hur man kan göra för att manipulera Excelfunktioner som =MAX(), =MEDEL() o.dyl. via VBA. För tillfället har jag löst detta problem enligt nedan, men det är inte den optimala lösningen.
    Dim NewValSpan As Range
    Dim OldValSpan As Range
    Set NewValSpan = Sheets("Utvärdering").Range("Z4")
    Set OldValSpan = Sheets("Utvärdering").Range("AB4")
    If NewValSpan <> OldValSpan Then
        Sheets("Värdesida1").Select
        Rows("2:2").Select
        Selection.Replace What:= OldValSpan, Replacement:=NewValSpan, LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        Range("Z4,AA4").Select
        Range("AA4").Activate
        Selection.Copy
        Range("AB4").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
    End If
Förklaring: Arbetsboken består av några ”Värdesidor” och en ”Utvärderingssida”. På sidan “Utvärdering” finns Startknappen för Makrot. Bredvid den finns en ruta med celler där jag skriver in gränsvärden och parametrar för utvärderingen. En av dessa parametrar är ”NewValSpan”, som är ett heltal som visar hur många rader jag vill att ex. =MEDEL() skall baseras på. När jag skrivit in ett värde för ”NewValSpan” och klickat på Startknappen skall If-satsen utvärderas. Om den är sann skall Rad2 på ”Värdesida1” väljas ut. Därefter görs helt enkelt en vanlig Sök och Ersätt –körning på det valda området. Sist kopieras värdet för ”NewValSpan” över till ”OldValSpan” för att Makrot vid nästa körning inte skall göra ovanstående om inte ett nytt ”NewValSpan” skrivits in. För ytterligare klargöring, om funktionen i ex. cell B2 på Värdesida1 ser ut så här =MEDEL(B10:B150) skall den understrukna delen, allså 150 vara den del som byts ut mot värdet av ”NewValSpan” vid Sök och Ersätt –körningen.
Ett effektivare sätt vore om Makrot kunde skriva in värdet av ”NewValSpan” oavsett vilket värde det tidigare står på den platsen i funktionen =MEDEL(B10:B150), allså i stället för Sök och Ersätt får man enbart en Ersätt –funktion.
Nytt inlägg
 2009-05-25 10:09
 

Är inte helt säker på vad du vill göra, vill du bara byta ut 150 i formeln =MEDEL(B10:B150) så kan du göra följande:

i c2 skriv 150

ändra b2 till =medel(indirekt("B10:B" & C2))

nu kan du ändra C2 till det antal rader du vill ha.

alternativt kan du använda förskjutningsformeln enligt följande

=MEDEL(FÖRSKJUTNING(B10;0;0;C2))


Excelspecialisten

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2009-05-25 21:48
 

Tack så mycket för ett snabbt och lätt svar. En ögonöppnare för en självlärd "novis" inom Excel att använda nästlade funktioner på det viset. Jag valde att använda "specialistens" =MEDEL(INDIREKT -alternativ, då jag i VBA kan styra värdet av C2 via redan befintligt Variabelnamn.

Tråkigt bara att ni inte riktigt förstod vad jag var ute efter. Men man blir lätt hemmablind när man beskriver dylika problem. Huvudsaken är att ni förstod tillräckligt mycket för att styra mig rätt.

Om ni har förslag på litteratur som inriktar sig på användandet av, och användningsområden för Funktionerna i Excel vore jag tacksam, så att denna "novis" kan få lite mer "kött på benen".

Än en gång tack // Jörgen.

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAHur kan jag manipulera Excelfunktioner som ex. =MEDEL() via VBAHur kan jag manipulera Excelfunktioner som ex. =MEDEL() via VBA

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