Avatar billede alj Praktikant
21. august 2002 - 14:07 Der er 9 kommentarer og
1 løsning

Sum variabelt område

Problemet består i at jeg står i celle V11 (resultatet skal være i celle V11) og skal lave en =SUM funktion der altid starter i Kol. AA (første række 11), men at der skal summeres iht værdierne i cellerne ud fra kol AA, hvis de har et tal (i f.eks. celle AC11) skal der summeres på området =sum(AA1:AC11), MEN i den næste række skal der måske summeres på AA12:AU12.
Jeg regner med at optælle hhv rækken og kol i en variabel, men hvordan putter jeg dem ind i vba-sumformler =sum(fast fra kol AA var.rækkenr:var.kol og var.række).
mvh
alj
Avatar billede ferdinand.k Mester
21. august 2002 - 14:09 #1
forsøg med tasten CTRL og markér de felter der skal summeres...?
Avatar billede alj Praktikant
21. august 2002 - 14:16 #2
Beklager, men området skal optælles via en makro, så det duer ikke med markering af området.
mvh
alj
Avatar billede b_hansen Novice
21. august 2002 - 14:18 #3
kan der være huller i den enkelte række? Altså mellem startværdien i kolonne AA og den sidste kolonne?

Og findes der efterfølgende værdier, som skal bruges til et andet formål? Hvis ikke, kan du jo bare bruge formlen SUM(AA:IV)......
21. august 2002 - 14:22 #4
Hej alj
Prøv engang med denne her:

Public Sub CreateSUMformula()
    Dim lCount As Long
    Dim lRows As Long
    Dim lColumns As Long
    lRows = Range("A11").End(xlDown).Row
    lColumns = Range("A11").End(xlToRight).Column

    For lCount = 11 To lRows
        Cells(lCount, lColumns + 1).FormulaR1C1 = "=SUM(RC[-" & lColumns & "]:RC[-1])"
    Next lCount
End Sub

Der hvor lRows og lColumns bliver optalt skal du måske sætte Worksheets("Ark1") foran Range - således makroen kun virker på et ark.
Avatar billede alj Praktikant
21. august 2002 - 15:25 #5
Makroen ser således ud:
Sub Find_makro_der_skal_køres()
Dim kstart As Long
    Sheets("Vagtplan").Select
    Range("v1").Select
    Do While ActiveCell.Value <> "Makronr."
    ActiveCell.Offset(1, 0).Select
    Loop
    ActiveCell.Offset(1, 0).Select
    ræk = ActiveCell.Offset(0, 2).Value
    ActiveCell.Offset(0, 5).Select
    'tæl antal kol til første værdi
    Do While ActiveCell.Value = ""
    kol = kol + 1
    ActiveCell.Offset(0, 1).Select
    Loop
    kol = kol + 27
    Range("v11").Select
    rstart = ræk
    kstart = kol
    ActiveCell.FormulaR1C1 = "=SUM(RC[-27]:RC[- " & kstart & "])"
End Sub
men giver en run-time-error- i forbindelse med sum-formlen. Den første del RC-27 er lig kol AA og det sidste led skulle være lig kol AC som det også bliver når den køres, men alligevel giver den fejlen, Hvorfor det ?
mvh
alj
21. august 2002 - 15:39 #6
Fordi du kstart sættes lig kol, som måske er større end det antal kolonner som Excel kan gå til venstre ? Hvilken værdi har kstart når du får fejlen. - har du prøvet min makro ?
Avatar billede alj Praktikant
21. august 2002 - 15:46 #7
Hej flemmingdahl,
joda, jeg har prøvet med din makro, men den indsætter værdier i mine kol (dem der kun skulle tælles op), så derfor lavede jeg ovenstående, men af en eller anden grund vil den ikke acceptere at kstart er lig 29, via funktionen skulle dette blive -29. Jeg tæller området fra aa11:ac11 (aa=kol -27 og ac=kol -29, jeg står i celle V11)
mvh alj
Avatar billede alj Praktikant
21. august 2002 - 15:51 #8
Øhh, det er da vist ikke så korrekt at jeg bruger -27 for kol aa når jeg er placeret i kol v, er det korrekt opfattet ?
alj
Avatar billede alj Praktikant
21. august 2002 - 15:56 #9
JUBII, flemming, det virker nu efter jeg har rettet -27 mv.
MEN det der virkeligt hjalp var din makro, i og med den viste hvordan man skal skrive en variabel ind i sum-formlen, så TILLYKKE med point's.
mvh
alj
21. august 2002 - 15:59 #10
tak ;-) og god fornøjelse
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester