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

Vraag over Optelbereik bij gebruik macro

Status
Niet open voor verdere reacties.

kippiebla

Gebruiker
Lid geworden
13 aug 2016
Berichten
287
Het voorbeeldbestand bevat de macro "Filter" die rijen uit de werkmap "Bron" kopieert naar de werkmap "Kopie" maar daar de rijen uit wegfiltert waar in kolom C de woorden "Uitgave", "Twijfel", "Weet niet" of "Niet goed" voorkomen. In dit geval worden de rijen met nr. 6 en 9 niet mee gekopieerd naar werkmap "Kopie". De macro komt van HSV op dit forum en ook Cow19 heeft geholpen. Het kopieren werkt prima. Maar in kolom D gaat het mis met de optelfunctie in D15 (in werkmap "Bron") en in D13 in "Kopie" (als je de macro hebt toegepast en er dus gekopieerd is naar "Kopie"). In D17 staat het bereik SOM (D5:D14) en in D14 staat SOM(D3:D12). Nu gaat het om het begin van beide sombereiken, want die verschillen (de ene optelling begint bij D5 en de andere bij D3. En die wil ik graag gelijk hebben, want anders krijg ik bij grotere tabellen problemen. Kan iemand hierbij helpen? Het lijkt wel te liggen aan het feit dat er 2 rijen worden weggefilterd en dat daarom D5 veranderd wordt in D3. Maar ze moeten wel gelijk blijven......
 

Bijlagen

Code:
Sub Filter()
    For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row
        If Cells(i, 11) <> "Uitgave" And Cells(i, 3) <> "Twijfel" And Cells(i, 3) <> "Weet niet" And Cells(i, 3) <> "Niet goed" Then
            Range("A" & i & ":AA" & i).Copy Sheets("Kopie").Cells(Rows.Count, 1).End(xlUp).Offset(1)
            'Cells(i, 3).EntireRow.Delete '(eventueel de gekopieerde rijen verwijderen)
        End If
    Next
   [COLOR=#ff0000] Sheets("Kopie").Cells(Rows.Count, 4).End(xlUp).FormulaR1C1 = "=SUM(R5C:R[-1]C)"[/COLOR]
End Sub
 
Dank Timshel! Om jouw code ook voor andere bestanden te kunnen toepassen: ik begrijp dat ".Cells(Rows.Count, 4)" uitrekent hoeveel rijen data bevatten in kolom 4 (D). Maar het deel "End(xlUp).FormulaR1C1 = "=SUM(R5C:R[-1]C)", zou je willen uitleggen wat dat precies doet?
 
Het zit anders. Het deel
Code:
Sheets("Kopie").Cells(Rows.Count, 4).End(xlUp)
zoekt van onderaf in kolom D naar de eerste niet-lege cel. In die cel staat op dat moment nog een foutieve formule. Die cel dient tevens als referentiecel voor de relatieve formule:
Code:
.FormulaR1C1 = "=SUM([COLOR="#FF0000"]R5C[/COLOR]:R[-1]C)"
verwijst naar rij 5 van de kolom van de referentiecel. Oftewel D5.
Code:
.FormulaR1C1 = "=SUM(R5C:[COLOR="#FF0000"]R[-1]C[/COLOR])"
verwijst naar 1 cel boven de referentiecel. Dat is het te sommeren bereik.
 
Laatst bewerkt:
Graag gedaan. Zet je de vraag nog even op opgelost?
 
@kippiebla,

Kan je mijn accountnaam verwijderen in vraag 1?
Zulke codes schrijf ik niet.
 
@kippiebla,

Kan je mijn accountnaam verwijderen in vraag 1?
Zulke codes schrijf ik niet.

Excuus HSV. Ben zeker in de war. Maar ik weet niet hoe ik jouw naam kan verwijderen uit mijn aanvankelijke vraag. Ik zie bij mijn oorspronkelijke vraag geen knop "bericht aanpassen"......
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan