• 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.

Loop voor Som in VBA

  • Onderwerp starter Onderwerp starter Ola
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Ola

Gebruiker
Lid geworden
28 okt 2009
Berichten
27
Voor een bestand gebruik ik deze herhalende som:

is er nog iets wat beter werkt?
Range("AJ19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C13:R8000C13)"
Range("AK19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C14:R8000C14)"
Range("O19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C15:R8000C15)"
Range("P19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C16:R8000C16)"
Range("Q19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C17:R8000C17)"
Range("R19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C18:R8000C18)"
Range("S19").Select
ActiveCell.FormulaR1C1 = "=SUM(R23C19:R8000C19)"
 
Heb je geen VBA voor nodig ... zet die =sum(....) gewoon in de cellen waar je ze wil hebben.
 
Heb je geen VBA voor nodig ... zet die =sum(....) gewoon in de cellen waar je ze wil hebben.

Dat is een te simpel antwoord. Want dat is namelijk niet de oplossing.
Het is echt de bedoeling dat dit in VBA gebeurd. Is onderdeel van een heel functie
 
Zo is het al een stuk vereenvoudigd:
Code:
Range("O19").Formula = "=SUM(O23:O8000)"
Range("P19").Formula = "=SUM(P23:P8000)"
Range("Q19").Formula = "=SUM(Q23:Q8000)"
Range("R19").Formula = "=SUM(R23:R8000)"
Range("S19").Formula = "=SUM(S23:S8000)"
Range("AJ19").Formula = "=SUM(M23:M8000)"
Range("AK19").Formula = "=SUM(N23:N8000)"
 
Zo is het al een stuk vereenvoudigd:
Code:
Range("O19").Formula = "=SUM(O23:O8000)"
Range("P19").Formula = "=SUM(P23:P8000)"
Range("Q19").Formula = "=SUM(Q23:Q8000)"
Range("R19").Formula = "=SUM(R23:R8000)"
Range("S19").Formula = "=SUM(S23:S8000)"
Range("AJ19").Formula = "=SUM(M23:M8000)"
Range("AK19").Formula = "=SUM(N23:N8000)"
 
Top, dit is wat ik zocht! helemaal goed!

Moet ik dan in VBA ook de cellen van het optelbereik vastzetten zoals je dat normaal in de cel doet!
 
Niet nodig, want je gaat ze niet door trekken.
 
Mooie quote, wil je er ook iets mee zeggen? Om met VBA formules te plaatsen lijkt mij niet de meest slimme oplossing. Maar bij gebrek aan een voorbeeldbestand heb ik geen alternatief.
 
Ok en als ik de laatste rij (8000) flexibel wil maken dat hij door loopt tot de laatste cel van die kolom?
 
Daar zijn diverse antwoorden op te verzinnen. UsedRange.Rows.Count is er 1 van.
 
ik zou ergens een gedefinieerde naam maken zodat je weet waar die 8000 dan echt stopt en die zou ik dan in de formule stoppen eventueel nog met een verschuivingsfunctie.
Nog gemakkelijker zou het zijn als je gegevens in een tabel zouden staan, dan tel je gewoon de ganse tabelkolom.
Zonder voorbeeld blijft het inderdaad gokken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan