• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

macro somprodukt ??

Status
Niet open voor verdere reacties.

avesoft

Gebruiker
Lid geworden
11 apr 2011
Berichten
186
heren leden

ik zou graag willen weten of zie hieronder ook als macro te maken is

ik zou dit dan graag toe willen passen van cel B42 t/m B151

Code:
=SOMPRODUCT(($E$4:$E$31=B42)*(I$4:$I$31))+SOMPRODUCT(($J$4:$J$31=B42)*(N$4:$N$31))+SOMPRODUCT(($O$4:$O$31=B42)*(S$4:$S$31))+SOMPRODUCT(($T$4:$T$31=B42)*(X$4:$X$31))+SOMPRODUCT(($Y$4:$Y$31=B42)*(AC$4:$AC$31))

mvgr arie
 
avesoft,

Het duurd wel even maar dan zijn de cellen wel gevuld met de formule.
Code:
Sub VulMetFormule()
  For Each cl In Range("B42:B151")
    cl.FormulaR1C1 = _
        "=SUMPRODUCT((R4C5:R31C[493]=R[36]C[-4])*(R4C[3]:R31C9))+SUMPRODUCT((R4C10:R31C10=R[36]C[-4])*(R4C[8]:R[25]C383))+SUMPRODUCT((R[-2]C15:R31C[13247]=R[36]C[-4])*(R4C[13]:R31C19))+SUMPRODUCT((R4C20:R31C20=R[36]C[-4])*(R4C[18]:R31C24))+SUMPRODUCT((R4C25:R31C25=R[36]C[-4])*(R4C[23]:R31C29))"
  Next
End Sub
 
Deze is stukken sneller.
Code:
Sub VulMetFormule()
 Dim Vulmetrange As Range
   Range("B42") = "=SUMPRODUCT((R4C5:R31C[493]=R[36]C[-4])*(R4C[3]:R31C9))+SUMPRODUCT((R4C10:R31C10=R[36]C[-4])*(R4C[8]:R[25]C383))+SUMPRODUCT((R[-2]C15:R31C[13247]=R[36]C[-4])*(R4C[13]:R31C19))+SUMPRODUCT((R4C20:R31C20=R[36]C[-4])*(R4C[18]:R31C24))+SUMPRODUCT((R4C25:R31C25=R[36]C[-4])*(R4C[23]:R31C29))"
  Set Vulmetrange = Sheets("Blad1").Range("B42:B151")
 Range("B42").AutoFill Vulmetrange
End Sub
 
aller eerst dank voor snelle reactie

sorry luitjes deze formule moet op cel Y42 t/m Y151

deze wat ik gepost heb staat alleen in Y42

doet deze macro autovullen ??

exusses hiervoor, was te snel

gr arie
 
Laatst bewerkt:
Arie,

Lijkt me niet zo moeilijk om het juiste bereik er van te maken.
 
even wat anders

de link . http://www.mijnbestand.nl/ . kan daar iedereen een file plaatsen ??

zo ja is wel handig

heb al gekeken , id je kan tot 300 mb uploaden

gr arie
 
Laatst bewerkt:
heren

lukt me echt niet heb wat fout gedaan :eek: weet niet wat maar als ik macro gebruik dan is laptop half uur bezig en dan schakelt de laptop gewoon uit

gr arie
 
Laatst bewerkt:
De macro kan je stoppen door op Ctrl en tegelijkertijd op de Pause/Break toets te drukken , waarschijnlijk kom je in een loop terecht die erg veel van de processor vraagt waardoor de cpu uitvalt ( heb je geen koeling onder je laptop ? )
 
nee heb ik niet , dit is eerste keer dat hij uitvalt onder het berekenen

gr arie
 
Harry

ik zou graag dat als een macro willen laten uitvoeren

gr arie
 
Probeer het eens Arie.
Code:
Sub VulMetFormule()
 Dim Vulmetrange As Range
    With Sheets("35")
    .Range("Y42").FormulaR1C1 = "=SUMPRODUCT((R4C5:R31C5=RC[-23])*(R4C[-16]:R31C9))+SUMPRODUCT((R4C10:R31C10=RC[-23])*(R4C[-11]:R31C14))+SUMPRODUCT((R4C15:R31C15=RC[-23])*(R4C[-6]:R31C19))+SUMPRODUCT((R4C20:R31C20=RC[-23])*(R4C[-1]:R31C24))+SUMPRODUCT((R4C25:R31C25=RC[-23])*(R4C[4]:R31C29))"
  Set Vulmetrange = .Range("Y42:Y151")
 .Range("Y42").AutoFill Vulmetrange
 End With
End Sub
 
Harry

bedankt

ik zal dit in file verwerken en kijk of het goed werkt
 
Als ik je vraag lees, zou ik zeggen dat je ipv de formule in de sheet op die plek een door VBA gegenereerde waarde wilt hebben staan. Klopt dat? Nu plaatst VBA dus alleen maar de formule in het door jou opgegeven bereik...

Groet, Leo
 
Waarom heren?
Er zijn hier ook heel wat gebruikers van het vrouwelijke geslacht hoor.

ik zou graag willen weten of zie hieronder ook als macro te maken is
Ja, dat is mogelijk.
Dan moet natuurlijk wel bekend zijn hoeveel verschillende gegevens er in kolom B vanaf B42 allemaal kunnen staan. Je schrijft dat je de berekening wil uivoeren t/m rij 151. Wil dat zeggen dat er vanaf B42 in kolom B 110 verschillende gegevens komen staan?

Als je een macro gebruikt, waarom zou je dan nog formules in de cellen plaatsen?
Het nut daarvan ontgaat mij.

Maar als je wel formules gebruikt: het gebruik van somproductformules verdient geen aanbeveling als die op veel rijen of kolommen moet worden toegepast. Die vertragen de werking van je blad enorm. Het is ook helemaal niet nodig om die te gebruiken, want voor je probleem zijn andere mogelijkheden voorhanden. Bijvoorbeeld deze voor cel Y42 (althans als de uitkomst daar 7 moet zijn, zie mijn opmerking hieronder):
Code:
=SOM(SOM.ALS($E$4:$E$31;B42;I$4:$I$31);SOM.ALS($J$4:$J$31;B42;N$4:$N$31);SOM.ALS($O$4:$O$31;B42;S$4:$S$31);SOM.ALS($T$4:$T$31;B42;X$4:$X$31);SOM.ALS($Y$4:$Y$31;B42;AC$4:$AC$31))

Je berekening vind ik vreemd. In Y42 plaats je 7 als als uitkomst voor het aantal uren van monteur1, terwijl monteur 1 aan test 1 slechts 4 uur gewerkt heeft. Hoe zit dat precies ?
 
Helaas nog geen reactie op mijn vorig bericht, waarop ik nog een aanvulling wil geven.
Als je een macro wil gebruiken zonder formules in het blad te plaatsen, kun je deze code runnen:
Code:
Sub macro1()
Dim x As Integer
Range("y42:y151").ClearContents
'Deze macro is geschreven door Zapatr
For x = 42 To 151
Range("y" & x).Value = WorksheetFunction.Sum(WorksheetFunction.SumIf([e4:e31], Range("B" & x), [i4:i31]), _
WorksheetFunction.SumIf([j4:j31], Range("B" & x), [n4:n31]), WorksheetFunction.SumIf([o4:o31], Range("B" & x), [s4:s31]), _
WorksheetFunction.SumIf([t4:t31], Range("B" & x), [x4:x31]), WorksheetFunction.SumIf([y4:y31], Range("B" & x), [ac4:ac31]))
Next x
End Sub
 
heren leden

sorry voor late reactie ivm werk

macro van van harry werkt goed :thumb:, wel niet automatisch (zou wel mooi zijn)maar komt nog wel later

ik zou graag dat het allemaal gevuld word door macro,s ivm het perongeluk verwijderen van een formule in de cel , collega,s werken er ook mee en die hebben wel eens de neiging om een hele rij te selecteren en te kopieren , doen dan plakken in een daar opvolgend blad krijg ik foute waardes in de cellen . nu run ik macro een keer opnieuw en probleem is weer opgelost

ik wil dit een tijd proberen

ik ga ook de andere macro van zapatr proberen (als het werkt en automatisch kan is ook mooi)

alvast bedankt voor alle inzet :thumb:

ik post een sheet met hoe we nu werken met een oudere opzet van sheet, werkt redelijk goed

Bekijk bijlage week 45.rar

gr arie
 
Laatst bewerkt:
zapatr

werkt zeer goed , geen misleiding met formules in cellen . kan dit ook automatisch ??

bv als celbereik I4 t/m I31 ,N4 t/m N31 ,S4 t/m S31 ,X4 t/m X31 ,AC4 t/m AC31 een waarde ingevuld word

Private Sub Worksheet_Change(ByVal Target As Range) gebruik ik al een keer als dit de juiste verwijzing is ?

gr arie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan