Aanvulling op de code van VenA

Status
Niet open voor verdere reacties.

gast0660

Terugkerende gebruiker
Lid geworden
28 dec 2010
Berichten
4.530
Hoi,
Ik heb een paar dagen een stukje code aangereikt gekregen van VenA
Code:
TextBox12.Value = Application.Sum(Sheets(sSheetName).Columns(5))
Nu had ik die graag uitgebreid gezien zodat er eerst wordt gekeken in kolom B naar een bepaalde waarde en alleen de som maakt van de rijen waar de waarde in voorkomt, ik kom er helaas niet uit
Alvast bedankt

Groet
 
Heb je iets gedaan met sumproduct ?
 
Hoi Snb,
Neen, dacht dat sumproduct alleen een worksheet functie was
groet
 
Wat dacht jij dan dat application.sum is ?
 
Hoi snb,
Zat ergens in mijn achterhoofd, waarom weet ik ook niet
 
Daar moet je ongelooflijk mee uitkijken, met wat er zich in achterhoofden bevindt...;)
 
Hoi Snb,
Ik krijg het maar niet opgelost, heb je een voorzetje
Groet
 
Plaats eens een voorbeeldbestand ?
 
Hoi Snib,
Dan moet ik wel een en ander gaan trimmen
Heb je met deze een idee
Dit is wat ik heb en het resultaat in textBox 26 geeft als resultaat een 0
Code:
Private Sub CommandButton3_Click()
Dim sSheetName As String
Dim Result As Long
Dim LastRow As Long
Dim SumRange As range
Dim CriteriaRange As range
Dim Criteria As String

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Criteria = "arbeidsloon"
Set SumRange = ActiveSheet.range("H17:H" & LastRow)
Set CriteriaRange = ActiveSheet.range("B17:B" & LastRow)

 sSheetName = ActiveSheet.Name
 TextBox12.Value = Application.Sum(Sheets(sSheetName).Columns(5))
 TextBox22.Value = Application.Sum(Sheets(sSheetName).Columns(7))
 TextBox24.Value = Application.Sum(Sheets(sSheetName).Columns(8))
 TextBox26.Value = Result

End Sub
Kan je hiermee al een voorzetje geven?
Alvast bedankt
 
Bv.

Code:
MsgBox Evaluate("sumif(" & Columns(2).Address & ",""x"",offset(b1,,3))")
 
Laatst bewerkt:
Wel een erg Freudiaanse vertyping....:evil:
 
Hoi,
@HSV,
Hartelijk dank voor het meedenken maar helaas geeft uw code als resultaat 0
Groet
 
Hoi snb en HSV,
Bedankt voor het meedenken, ik heb het eindelijk kunnen uitdokteren, bij deze zet ik de vraag op opgelost
Groet
 
Werk jij voor de NSA dat je je oplossing geheim houdt ?
 
Hoi Snb,
Ik werk niet voor No Such Agency
Ik was gewoon niet thuis.
Bij deze
Dit werkt voor mij
Gezien uw kennis, een betere oplossing is altijd welkom:)
Code:
Sub test()
Dim sSheet As Worksheet
Dim Result_1 As Long, Result_2 As Long, Result_3 As Long, Result_4 As Long, LastRow As Long

Set sSheet = ThisWorkbook.ActiveSheet

LastRow = Cells(Rows.Count, "F").End(xlUp).Row

    Result_1 = WorksheetFunction.SumIfs(sSheet.Range("F2:F" & LastRow), sSheet.Range("B2:B" & LastRow), "abc")
    Result_2 = WorksheetFunction.SumIfs(sSheet.Range("F2:F" & LastRow), sSheet.Range("B2:B" & LastRow), "fgh")
    Result_3 = WorksheetFunction.SumIfs(sSheet.Range("F2:F" & LastRow), sSheet.Range("C2:C" & LastRow), "6")
    Result_4 = WorksheetFunction.SumIfs(sSheet.Range("F2:F" & LastRow), sSheet.Range("C2:C" & LastRow), "21")

TextBox1.Value = Result_1
TextBox2.Value = Result_2
TextBox3.Value = Result_3
TextBox4.Value = Result_4

End Sub
Groet
 
Pak van mijn hart.....

Ter illustratie:
Code:
Sub M_snb()
    sn = Array([sum((F1:F1000="abc")*B1:B1000)], [sum((F1:F1000=6)*C1:C1000)])
    
    MsgBox sn(0)
    MsgBox sn(1)
End Sub

Op deze manier kun je van jouw hele code een eenvoudige one-liner maken.
 
Laatst bewerkt:
Hoi,
@snb,
Blij dat het pak van u hart is.
thanks
Met uw one-liner ga ik morgen eens aan de slag
(zoals ik al zei met uw kennis:))
Groet
 
Nogal wiedes dat het resultaat 0 is als je de code niet begrijpt.
Code:
MsgBox Evaluate("sumif(" & Columns(2).Address & ",""abc"",offset(b1,,4))")
 
Hoi,
@HSV, sorry, ik was gewoon te snel met mijn antwoord, ik wilde u al een edit sturen om 12:30 u maar ik moest helaas snel weg (mijn vrouw stond al klaar met haar handtas in haar handen:o). Nadien is het uit mijn gedachten gegaan.
Uw code begrijp ik perfect, waarvoor dank
Groet
 
Oke, deegrollen doen zeer maar handtasjes is ook wapentuig. :d
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan